gpt4 book ai didi

python - 迭代 ndarray

转载 作者:行者123 更新时间:2023-11-30 22:23:35 24 4
gpt4 key购买 nike

运行此代码时使用二维数组“轴”:

print(axes.shape)
print(axes)
for ax in np.nditer(axes, flags=["refs_ok"]):
print(type(ax))

产生此输出:

(10, 4)
[[<matplotlib.axes._subplots.AxesSubplot object at 0x1a215d8908>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1dcd37b8>
<matplotlib.axes._subplots.AxesSubplot object at 0x115e3ad30>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1df18b00>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x115e84f60>
<matplotlib.axes._subplots.AxesSubplot object at 0x115e84780>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e163f60>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a23a75208>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x1a23a54860>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1b5ffb00>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a239a5550>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e4bd6a0>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x1a20238be0>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1d0becf8>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a21ce1d30>
<matplotlib.axes._subplots.AxesSubplot object at 0x1165de6a0>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x1a1d2feb70>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1ceee320>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a2000d9e8>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e2fe278>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x1a1b6f8da0>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1d361dd8>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a21dd0470>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e6f93c8>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x1a206b3320>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a20568588>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1b5d79b0>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1cadebe0>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e536208>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1b173cc0>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a21a09f60>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e58f588>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x1a221ee048>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a21b76e80>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1f6209b0>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a21b54d68>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x1a1fbb6358>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1b52fe80>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a1e5108d0>
<matplotlib.axes._subplots.AxesSubplot object at 0x1a2034fb38>]]
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>

在我看来,数组的第一层包含 10 个子数组或行,每个子数组或行都包含四个 AxesSubPlot 对象。那么,为什么 for 循环的输出会说它们是 ndarray 呢?

最佳答案

nditer 循环中,您没有迭代数组的元素。您正在迭代 0 维子数组,每个子数组都是单个轴单元格的只读 View 。您看到的 type 是 0 维子数组的类型,而不是实际的数组内容。

如果要迭代 object 数据类型的 N 维数组中的对象,最简单的方法是迭代 axes.flat:

for ax in axes.flat:
do_whatever_with(ax)

对于其他数据类型的数组,通常最好避免显式迭代。

关于python - 迭代 ndarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48026452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com