使用 nditer 进行浅迭代

2023-10-19Python开发问题
1

本文介绍了使用 nditer 进行浅迭代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有这样一个数组:

>>>y = np.random.randint(0, 255, (2,2,3))
>>>array([[[242, 14, 211],
           [198,  7,   0]],

          [[235,  60,  81],
           [164,  64, 236]]])

而且我必须遍历每个 triplet 元素(不幸的是,矢量化对我没有帮助......).所以我尝试了:

And I have to iterate over each triplet element (unfortunately vectorization won't help me here...). So I tried:

for i, j in np.nditer(y):
print y[i, j],

希望我能得到这样的输出:

hoping I'd get such an output:

[242, 14, 211], [198, 7, 0], [235, 60, 81], [164, 64, 236],但运气不好!

我得到错误:

Traceback (most recent call last):

  File "<ipython-input-21-a336ef837a8a>", line 1, in <module>
    for i, j in np.nditer(y):    print y[i,j]

TypeError: iteration over a 0-d array

我很确定我犯了一个非常明显的错误...谁能帮帮我?

I'm quite sure I'm making a very obvious error... can anyone please help me?

推荐答案

看起来你只需要把它拉平.您可以使用 itertools 中的 chain 运算符.

It looks like you just need to flatten this down a level. You can use the chain operator from itertools.

from itertools import chain    


y = np.random.randint(0, 255, (2,2,3)
b = chain.from_iterable(y) # where b is a generator

list(b) 输出

[array([ 51, 119,  84]),
 array([ 50, 110, 193]),
 array([165, 157,  52]),
 array([239, 119,  83])]

这篇关于使用 nditer 进行浅迭代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

在xarray中按单个维度的多个坐标分组
groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)...
2024-08-22 Python开发问题
15

Pandas中的GROUP BY AND SUM不丢失列
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)...
2024-08-22 Python开发问题
17

pandas 有从特定日期开始的按月分组的方式吗?
Is there a way of group by month in Pandas starting at specific day number?( pandas 有从特定日期开始的按月分组的方式吗?)...
2024-08-22 Python开发问题
10

GROUP BY+新列+基于条件的前一行抓取值
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)...
2024-08-22 Python开发问题
18

PANDA中的Groupby算法和插值算法
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)...
2024-08-22 Python开发问题
11

PANAS-基于列对行进行分组,并将NaN替换为非空值
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)...
2024-08-22 Python开发问题
10