numpy.ndarray.tolist是否获取类似列表的生成器而不是实际列表



我想要获取生成器对象,而不是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)检索迭代器。

相关内容

最新更新