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

时间:2019-04-30 02:20:48

标签: c# python

我正在将C#代码与python脚本集成在一起,其中 C#代码将2D数组作为参数传递给Python命令行,我想知道以下代码是否是正确的方法它: 以下代码用于在C#中使用array参数调用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:\DEV\IR_Analysis\venv\Scripts\python.exe"; 
 processStartInfo.Arguments = @"C:\DEV\IR_Analysis\BreastCancer_analysis\scratch.py"+" "+arr;

下面的代码是我尝试使用C#运行的python脚本,仅举例来说,如果此方法有效,我将在我的实际项目中使用此脚本,其中C#将大型2D数组传递给python。

import sys
print(sys.argv[1])

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

1 个答案:

答案 0 :(得分:0)

我看到一个问题:

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的评论,您可能希望按照documentation使用sys.float_info