我有此代码:
import numpy as np
X = np.array([[-3, 0, -4], [2, -4, 2], [-2, -2, -2]])
print(X)
生成
[[ -3 0 -4]
[ 2 -4 2]
[-2 -2 -2]]
现在,使用上面的矩阵,我只想打印该矩阵/数组中所有为正的元素。
我尝试过
for i in X:
if i>0
print(i)
但这会产生语法错误。
答案 0 :(得分:0)
看起来您的数组有两个维度。尝试这样的事情:
for row in X:
for column in row:
if (column > 0): print(column)
(另外,您的语法错误是因为if语句后缺少冒号)
答案 1 :(得分:0)
尝试一下:
for i in np.nditer(X):
if i>0:
print(i)
您有一个错误,因为在if
语句之后缺少分号,并且因为i
变量是矩阵的一行而不是元素。
如here所述,nditer
返回一个有效的多维迭代器对象,以迭代数组的元素。
迭代简单条件的另一种方法是:
for i in X[X>0]:
print(i)
答案 2 :(得分:0)
我将按照以下方式进行操作:
import numpy as np
X = np.array([[-3, 0, -4], [2, -4, 2], [-2, -2, -2]])
print(*[i for i in X.ravel() if i>0],sep='\n')
输出:
2
2
numpy.ravel返回展平的(1D)数组,您也可以将其用于比2
数组高维的数组。