如何将2D数组作为参数从C#传递给python

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将2D数组作为参数从C#传递给python相关的知识,希望对你有一定的参考价值。

我正在将我的C#代码与我的python脚本集成,其中C#代码将一个2D数组作为参数传递给Python命令行,我想知道下面的代码是否是正确的方法:下面的代码用于调用带有C#中数组参数的python脚本

 int[,] arr = new int[3, 4] {1, 2, 3, 4}, {11, 12, 13, 14}, {21, 22, 23, 24}};
 ProcessStartInfo processStartInfo = new ProcessStartInfo();
 processStartInfo.FileName = @"C:DEVIR_AnalysisvenvScriptspython.exe"; 
 processStartInfo.Arguments = @"C:DEVIR_AnalysisBreastCancer_analysisscratch.py"+" "+arr;

下面的代码是我尝试使用C#运行的python脚本,这只是例如,如果这有效,我将在我的实际项目中使用它,其中C#将一个大的2D数组传递给python。

import sys
print(sys.argv[1])

print(sys.argv [1])的输出应该是数组的元素集,但实际输出是'System.Int32 [,]'。

答案

我看到一个问题:

float[,] arr = new int[3, 4]

您已声明了一个Float数组,并使用Int32数组进行实例化。

你能试试这个:

float[,] arr = new float[3, 4] {1.3, 2.2, 3.3, 4.0}, {11.2, 12.3, 13.2, 14.12}, {21.2231, 22.324567, 23.12345, 24.6789}};

同时承认@ shingo的评论,你可能想要根据sys.float_info使用documentation

以上是关于如何将2D数组作为参数从C#传递给python的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组从 C 传递到嵌入式 python 脚本

使用 SWIG 时如何将 int 数组和 List<string> 作为参数从 C# 传递给 C++

JNI维数组:将二维数组从java传递给c

如何向 Shader 传递一个巨大的数组

如何将 Swift 字符串数组传递给采用 char ** 参数的 C 函数

无法将 1d 数组传递给方法,因为有 2d 数组参数