gpt4 book ai didi

Python:如何将复杂数组转换为二维数组?

转载 作者:行者123 更新时间:2023-11-28 23:06:12 25 4
gpt4 key购买 nike

作为一名 C++ 程序员,我习惯于访问 C++ 风格的向量:

for (i=0; i<max_x; i++) {
for (j=0; j<max_y; j++) {
vec[i][j] = real(complex_number(j+i*max_x))
}
}

现在我有 Python

    x = np.linspace(x1, x2, step)
y = np.linspace(y1, y2, step)
X, Y = np.meshgrid(x, y)
Z = x + 1j*y

for z in Z:
FZ = complex_function(z)

如何以“Pythonic”方式完成与 C++ 代码相同的事情?谢谢

编辑:检查 reshape 函数并重新分析我的代码,我注意到从二维数组到一维数组的转换存在问题。主要问题是我有一个接受复杂数组 z_list 并返回复杂数组的函数。我需要在网格上绘制它,我打算使用 matplotlib,但 matplotlib 需要一个二维数组,该数组上的每个点都具有值。如果不生成二维数组、将其重新整形为一维数组并将数组重新整形为二维,我该如何做到这一点?谢谢。

最佳答案

使用reshape将一维数组转换为二维(或任何其他形状)。

>>> x_max = 12
>>> y_max = 4
>>> vec1d = np.arange(x_max*y_max, dtype=complex)
>>> vec1d.reshape([x_max, y_max])
array([[ 0.+0.j, 1.+0.j, 2.+0.j, 3.+0.j],
[ 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j],
[ 8.+0.j, 9.+0.j, 10.+0.j, 11.+0.j],
[ 12.+0.j, 13.+0.j, 14.+0.j, 15.+0.j],
[ 16.+0.j, 17.+0.j, 18.+0.j, 19.+0.j],
[ 20.+0.j, 21.+0.j, 22.+0.j, 23.+0.j],
[ 24.+0.j, 25.+0.j, 26.+0.j, 27.+0.j],
[ 28.+0.j, 29.+0.j, 30.+0.j, 31.+0.j],
[ 32.+0.j, 33.+0.j, 34.+0.j, 35.+0.j],
[ 36.+0.j, 37.+0.j, 38.+0.j, 39.+0.j],
[ 40.+0.j, 41.+0.j, 42.+0.j, 43.+0.j],
[ 44.+0.j, 45.+0.j, 46.+0.j, 47.+0.j]])

关于Python:如何将复杂数组转换为二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5330368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com