我有一个文本文件,我可以用numpy.loadtxt
读取到一个2D数组中:
X Y Z V
-30 -15 -25 2
-29 -15 -25 2.1
-28 -15 -25 2.2
. . . .
. . . .
+29 -15 -25 2.1
+30 -15 -25 -2.0
-30 -14 -25 2 # now iterating X values while Y=-14
-29 -14 -25 2.1
-28 . . 2.2
. . . .
. . . .
+29 -13 -25 2.1
+30 -13 -25 -2.0 # now iterating X values while Y=-13, and so on...
. . . .
. . . .
. . . .
. . . .
X、Y和Z的范围不一定是整数,并且如上所述,在所有轴上不相同。我想用这些数据创建一个网格,即得到数组,使得:
>>> np.shape(V)
(61,31,51)
>>> np.shape(x)
(61,)
>>> np.shape(y)
(31,)
>>> np.shape(z)
(51,)
我看到了一个几乎identical question here,但很明显,那里的答案依赖于这样一个事实,即X
和Y
列包含从已知正数开始的整数。
1条答案
按热度按时间svmlkihl1#
假设该表与X,Y和Z值的重复一致,您可以使用
np.unique
和len
来计算结果数组应获得的形状。下面是一段完整的代码:np.reshape
不适合这种情况。要在table
的一维数组中找到正确的index
,必须使用Y值在迭代所有X值后更改的事实。因此,我们将j
乘以x
的长度。Z索引与X和Y长度的关系也是如此。