【发布时间】:2017-06-08 08:08:13
【问题描述】:
我有一个 mXn numpy 数组,称为: 我想编写一个函数,它返回一个大小为 (3, mxn) 的数组,其中包含第一个数组中的每一对 (x,y) 对应的值。
import numpy as np
m=5
n=10
a = np.random.random((m, n))
x = np.random.random((m, 1)) # x coordinates
y = np.random.random((1, n)) # y coordinates
b = np.empty((3, m*n)) # array to store coordinates
k=0
for i in range (0,m):
for j in range (0,n):
b[0,k] = a[i,0]
b[1,k] = a[0,j]
b[2,k] = a[i,j]
k=k+1
这似乎运行正常,但有没有更快或更好的编码方式来做到这一点?
【问题讨论】:
-
看起来您正在尝试以自己的方式构建网格。看看这个:docs.scipy.org/doc/numpy/reference/generated/…
-
这很有用,但据我了解,它只返回 x,y 坐标,不返回第三个坐标
-
我认为你需要使用
range (0,m)和range (0,n)来覆盖所有元素。 -
感谢@Divakar,我刚刚注意到一些奇怪的值
-
你根本没有使用 x,y 吗?为什么要麻烦把它放在你的代码中?
标签: python arrays performance numpy