Python中有一个非常大的二维数组,使用numpy库。我想要有效地遍历每一列,并且每次检查元素是否与0不同以在每列中计算它们的数量。在Python中高效地遍历numpy矩阵中的每一列
假设我有以下矩阵。
M = array([[1,2], [3,4]])
下面的代码,使我们的每一行有效地行走,例如(这是不是我打算做当然!):
for row_idx, row in enumerate(M):
print "row_idx", row_idx, "row", row
for col_idx, element in enumerate(row):
print "col_idx", col_idx, "element", element
# update the matrix M: square each element
M[row_idx, col_idx] = element ** 2
然而,在我来说,我想因为我有一个非常大的矩阵,所以可以有效地遍历每列。
我听说有实现这个使用numpy的一个非常有效的方式,而不是我当前的代码:提前
curr_col, curr_row = 0, 0
while (curr_col < numb_colonnes):
result = 0
while (curr_row < numb_rows):
# If different from 0
if (M[curr_row][curr_col] != 0):
result += 1
curr_row += 1
.... using result value ...
curr_col += 1
curr_row = 0
谢谢!
2015-02-17
Othmane
+0
您需要清洗缩进。 –
2015-02-17 22:26:57
+0
重新您的第一个代码块,它可以由单个语句代替'M = M * M' –
2015-02-17 22:32:07
+0
缩进更正,谢谢 –
2015-02-17 22:44:12