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
    

      

  • 相关阅读:
    Android-adb相关
    我想和iOS大牛们交流的问题
    iOS应用 bug定位
    iOS 中Block的基础用法
    iOS9 耗电量惊人
    三人小团队git分支协作试水
    今天开通了博客
    解决XCode安装插件后插件不能使用的问题(转载)
    (转载)iOS- 指压即达,如何集成iOS9里的3D Touch
    人魔七七
  • 原文地址:https://www.cnblogs.com/xingmuxin/p/10738404.html
Copyright © 2011-2022 走看看