python二维数组遍历_在Python中高效地遍历numpy矩阵中的每一列

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值