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 resul