我有几个数据数组,收集到一个数组中。我想遍历它,并对每个内部数组进行操作。在Numpy中执行此操作的正确方法是什么
import numpy as np
a = np.arange(9)
a = a.reshape(3,3)
for val in np.nditer(a):
print(val)
这给出了:
0
1
2
3
4
5
6
7
8
但是我想要的是(类似的东西)
array([0 1 2])
array([3 4 5])
array([6 7 8])
我一直在浏览此页面:https://docs.scipy.org/doc/numpy-1.15.0/reference/arrays.nditer.html,但到目前为止尚未找到答案。我也知道我可以使用普通的for循环来做到这一点,但我假设有一种更正确的方法。任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
您可以使用apply_along_axis
,但这取决于您的最终目标/输出是什么。这是一个简单的例子。
a
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
np.apply_along_axis(lambda x: x + 1, 0, a)
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
答案 1 :(得分:0)
实际上,当您使用reshape时,它将返回一个列表数组而不是数组。
如果您想获取每个单独的列表,则可以使用
a = np.arange(9)
a = a.reshape(3,3)
for val in a:
print(val)
答案 2 :(得分:0)
为什么不只是简单地循环遍历在for循环中获得单个行的数组
import numpy as np
a = np.arange(9)
a = a.reshape(3,3)
for val in a:
print(val)
# [0 1 2]
# [3 4 5]
# [6 7 8]