如何使用ndenumerate索引NumPy数组?

nbysray5  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(76)

我的代码:

import numpy as np
nnet.temp = np.zeros(nnet.max_layer_size, dtype=np.float64)
##some code
nnet.temp[i] = temp_val
for index, x in np.ndenumerate(nnet.temp):
   print(index, x)

print(nnet.temp)

[0.12233607 0.         0.19732719 0.         0.23104049 0.
 0.         0.         0.         0.         0.         0.19245713]
[0.         2.48127313 0.         0.         0.         0.21570966
 0.         0.         0.39054759 0.         0.         0.        ]

因为我想用索引打印它们,所以我尝试了ndenumerate

for index, x in np.ndenumerate(nnet.temp):
   print(index, x)
(0,) 0.12233607087416862
(1,) 0.0
(2,) 0.19732719295877543
(3,) 0.0
(4,) 0.23104048678483236
(5,) 0.0
(6,) 0.0
(7,) 0.0
(8,) 0.0
(9,) 0.0
(10,) 0.0
(11,) 0.19245712897455036
(0,) 0.0
(1,) 2.4812731271543647
(2,) 0.0
(3,) 0.0
(4,) 0.0
(5,) 0.21570965947566847
(6,) 0.0
(7,) 0.0
(8,) 0.39054758850346893
(9,) 0.0
(10,) 0.0
(11,) 0.0

但我想:

(0,0) 0.12233607087416862
(0,1) 0.0
(0,2) 0.19732719295877543
(0,3) 0.0
(0,4) 0.23104048678483236
(0,5) 0.0
(0,6) 0.0
(0,7) 0.0
(0,8) 0.0
(0,9) 0.0
(0,10) 0.0
(0,11) 0.19245712897455036
(1,0) 0.0
(1,1) 2.4812731271543647
(1,2) 0.0
(1,3) 0.0
(1,4) 0.0
(1,5) 0.21570965947566847
(1,6) 0.0
(1,7) 0.0
(1,8) 0.39054758850346893
(1,9) 0.0
(1,10) 0.0
(1,11) 0.0

这里有什么错误吗?

jogvjijk

jogvjijk1#

它对我有效:

In [146]: for idx,x in np.ndenumerate(np.zeros((3,2))):print(idx,x)                                          
(0, 0) 0.0
(0, 1) 0.0
(1, 0) 0.0
(1, 1) 0.0
(2, 0) 0.0
(2, 1) 0.0

相关问题