我需要一些帮助来检测二维数组的所有值(坐标),以验证特定的条件。在
在开始的时候,我试着把我的二维数组转换成一维数组,我得到 迭代(位置)在一维数组中,但这似乎很困难 找到一个好的位置,而不是很“安全”时,我在二维转换。。。在
在没有1D变换的情况下,有没有可能检测到这一点? 谢谢你的帮助!在
例如:
import numpy as np
test2D = np.array([[ 3051.11, 2984.85, 3059.17],
[ 3510.78, 3442.43, 3520.7 ],
[ 4045.91, 3975.03, 4058.15],
[ 4646.37, 4575.01, 4662.29],
[ 5322.75, 5249.33, 5342.1 ],
[ 6102.73, 6025.72, 6127.86],
[ 6985.96, 6906.81, 7018.22],
[ 7979.81, 7901.04, 8021. ],
[ 9107.18, 9021.98, 9156.44],
[ 10364.26, 10277.02, 10423.1 ],
[ 11776.65, 11682.76, 11843.18]])
a,b = test2D.shape
test1D = np.reshape(test2D,(1,a*b))
positions=[]
for i in range(test1D.shape[1]):
if test1D[0,i] > 5000.:
positions.append(i)
print positions
所以在这个例子中,我的输入是2D数组“test2D”,我希望所有能验证条件的坐标都是列表。在
如果你想要位置,可以用类似的方法
Numpy.where
这会回来的
^{pr2}$通常,当您使用
numpy.array
s时,您可以在奇特的索引中使用条件。例如,test2D > 5000
将返回一个与test2D
维数相同的布尔数组,您可以使用它来查找条件为真的值:test2D[test2D > 5000]
。不需要其他任何东西。与使用索引不同,您只需使用布尔数组来索引同一形状的test2D
以外的其他数组。Have a look here。在相关问题 更多 >
编程相关推荐