我想要获取生成器对象,而不是numpy数组的列表。
for item in numpy.ndarray.tolist():
item.do_something_with
我看不出有任何好处,因为您的数组一开始就已经是可迭代的,并且在内存中,但如果您绝对需要生成器,您可以这样做:
arr = np.random.randn(10)
for item in (item for item in arr):
...
也就是说,直接在数组上迭代会更可取:
for item in arr:
...
您可以直接在numpy数组上迭代
array = np.random.random(3,3,3) # 3d array
for a in array:
do_something(a) # a is a 2d array
do_something_as_list(a.tolist())
for a1 in a: # iterate again
... # a1 is a 1d array
# etc
您可以迭代数组中的每个缩放器元素,如
for e in array.flat:
do_something(e) # e is a scaler
如果您需要绕过迭代器(您可能指的是生成器(,则可以使用iter(array)
检索迭代器。