zoukankan      html  css  js  c++  java
  • gRPC 如何使用python表示多维数组

    在使用gRPC作为远程调用框架时,如何使用python来表示多维数组呢?gRPC中定义proto文件时,有一个参数是repeated,用来表示重复的数据类型,使用这个参数可以表示list类型。如下,我想表示一个三维数组,这个数组表示的是一个三通道RGB彩色图像,proto文件如下所示,proto文件中GrayFeature表示的是一个通道的灰度图像。

    syntax = "proto3";
    
    service DataListServer {
      rpc TransDataList(stream GrayFeature) returns (Reply) {}
    }
    
    message GrayFeature {
         repeated Feature feature = 1;
    }
    
    message Feature {
        repeated int32 pixel = 2;
    }  

    对应的Python代码如下:

    data_list = ndarray.tolist()
    lenth = len(data_list)
    for j in range(0, lenth):
          matrix = data_list[j]
          gray_feature = data_list_pb2.GrayFeature()
          for column in range(0, len(matrix)):
                feature = gray_feature.feature.add()
                feature.pixel.extend(matrix[column])
          yield gray_feature  

    在服务端对应的解析的Python代码如下:

    data_list = [[[]]] * 3
    for gray_feature in features:
          j = 0
          feature = gray_feature.feature
          length = len(feature)
          matrix = [[]] * length
          for i in range(0, length):
                matrix[i] = feature[i].pixel
          data_list[j] = matrix
          j += 1
    

      

  • 相关阅读:
    宠物的生长(多态)
    程序员和程序狗
    表彰优秀学生(多态)
    [leetcode] Anagrams
    [leetcode] Add Two Numbers
    [leetcode] Add Binary
    [leetcode] 4Sum
    [leetcode] 3Sum Closest
    [leetcode] 3Sum
    函数成员修饰之私有方式
  • 原文地址:https://www.cnblogs.com/xingmuxin/p/10738404.html
Copyright © 2011-2022 走看看