Python 如何打印我刚刚使用numpy zip()压缩的数组数据

Python 如何打印我刚刚使用numpy zip()压缩的数组数据,python,arrays,numpy,set,zip,Python,Arrays,Numpy,Set,Zip,我试图找出如何从压缩内容中查看数据。 代码中的场景如下所示: import numpy as np x=[1,2,3] y=[4,5,6] z=[7,8,9] data=np.array(zip(x,y,z)) print (data) 输出 array(<zip object at 0x00000166568AE648>, dtype=object) 它表明 <zip object at 0x00000166568AE648> 但它将输出显示为错误 -------

我试图找出如何从压缩内容中查看数据。 代码中的场景如下所示:

import numpy as np
x=[1,2,3]
y=[4,5,6]
z=[7,8,9]
data=np.array(zip(x,y,z))
print (data)
输出

array(<zip object at 0x00000166568AE648>, dtype=object)
它表明

<zip object at 0x00000166568AE648>
但它将输出显示为错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-20-2126862e2c70> in <module>()
----> 1 np.dstack(data)

C:\ProgramData\Anaconda3\lib\site-packages\numpy\lib\shape_base.py in dstack(tup)
    407 
    408     """
--> 409     return _nx.concatenate([atleast_3d(_m) for _m in tup], 2)
    410 
    411 def _replace_zero_by_x_arrays(sub_arys):

TypeError: iteration over a 0-d array
错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-41-6ad67a911952> in <module>()
----> 1 a,b,c=zip(*data)
      2 print('x=',a)
      3 print('y=',b)
      4 print('z=',c)

TypeError: iteration over a 0-d array
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-39-2e1af52686b4> in <module>()
----> 1 result = set(data)
      2 print (result)

TypeError: iteration over a 0-d array
错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-41-6ad67a911952> in <module>()
----> 1 a,b,c=zip(*data)
      2 print('x=',a)
      3 print('y=',b)
      4 print('z=',c)

TypeError: iteration over a 0-d array
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-39-2e1af52686b4> in <module>()
----> 1 result = set(data)
      2 print (result)

TypeError: iteration over a 0-d array
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1结果=集合(数据)
2打印(结果)
TypeError:在0-d数组上迭代

我相信我在基本的x,y,z数据中做了一些不好的事情。。但我的知识仅限于你对我的看法

你能帮我解决我遗漏的问题,并解释一下我遗漏的要点吗


当我搜索
TypeError:0-d数组上的迭代时

人们谈论的是
json
,我有一个0想法,而不是FC3,很抱歉。

你需要压缩数据吗?您可以向NumPy传递列表列表,例如:

import numpy as np
x=[1,2,3]
y=[4,5,6]
z=[7,8,9]
data=np.array([x,y,z])
print (data)
输出:

[[1 2 3]
 [4 5 6]
 [7 8 9]]
你需要压缩数据吗?您可以向NumPy传递列表列表,例如:

import numpy as np
x=[1,2,3]
y=[4,5,6]
z=[7,8,9]
data=np.array([x,y,z])
print (data)
输出:

[[1 2 3]
 [4 5 6]
 [7 8 9]]

列表元组的
zip
是一种列表转置:

In [83]: x=[1,2,3]
    ...: y=[4,5,6]
    ...: z=[7,8,9]
    ...: 
In [84]: zip(x,y,z)
Out[84]: <zip at 0xaf79f84c>
到目前为止,我使用的不是
numpy
,而是普通的Python<代码>邮政编码文档:

您可以从这样的列表中创建数组

In [86]: np.array(list(zip(x,y,z)))
Out[86]: 
array([[1, 4, 7],
       [2, 5, 8],
       [3, 6, 9]])
尝试从
zip
创建一个数组将生成一个元素数组0d,其中包含指向此
zip对象的指针。用这个做更多的事情没有什么意义

In [87]: np.array(zip(x,y,z))
Out[87]: array(<zip object at 0xaf75d8cc>, dtype=object)

zip的一个常见用法是一次迭代多个列表:

In [92]: for i,j,k in zip(x,y,z):
    ...:     print(i,j,k,i+j+k)
    ...:     
1 4 7 12
2 5 8 15
3 6 9 18

从评论中,您似乎专注于从该数组获取值:

In [97]: data = np.array(zip(x,y,z))
In [98]: data
Out[98]: array(<zip object at 0xabee412c>, dtype=object)
现在,您可以应用列表并查看以下项目:

In [100]: list(data[()])
Out[100]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

zip
实际上并不包含其参数。相反,它引用了原始列表。
数据
数组也是如此。

zip
列表元组是一种列表转置:

In [83]: x=[1,2,3]
    ...: y=[4,5,6]
    ...: z=[7,8,9]
    ...: 
In [84]: zip(x,y,z)
Out[84]: <zip at 0xaf79f84c>
到目前为止,我使用的不是
numpy
,而是普通的Python<代码>邮政编码
文档:

您可以从这样的列表中创建数组

In [86]: np.array(list(zip(x,y,z)))
Out[86]: 
array([[1, 4, 7],
       [2, 5, 8],
       [3, 6, 9]])
尝试从
zip
创建一个数组将生成一个元素数组0d,其中包含指向此
zip对象的指针。用这个做更多的事情没有什么意义

In [87]: np.array(zip(x,y,z))
Out[87]: array(<zip object at 0xaf75d8cc>, dtype=object)

zip的一个常见用法是一次迭代多个列表:

In [92]: for i,j,k in zip(x,y,z):
    ...:     print(i,j,k,i+j+k)
    ...:     
1 4 7 12
2 5 8 15
3 6 9 18

从评论中,您似乎专注于从该数组获取值:

In [97]: data = np.array(zip(x,y,z))
In [98]: data
Out[98]: array(<zip object at 0xabee412c>, dtype=object)
现在,您可以应用列表并查看以下项目:

In [100]: list(data[()])
Out[100]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

zip
实际上并不包含其参数。相反,它引用了原始列表。
数据
数组也是如此。

Python中的
zip
函数与压缩没有任何关系。你到底想做什么?你想压缩一些东西吗?你为什么打电话给
zip
?您想要的输出是什么?您似乎误解了
zip
正在压缩您的数据。事实并非如此。它正在执行“压缩”。这将获取两个序列,并在同一位置返回其每个元素的一对。就像“拉链”。它与.zip存档文件格式无关。这对我有很大帮助@juanpa.arrivillaga,@AhmedAbdulSalam是的,一般来说,你需要将对象具体化为numpy能够理解的东西,理想情况下,一系列序列,如果要传递
np.array
构造函数,则类似于
列表的
列表。
zip
对象不是它可以理解的对象,事实上,
zip
对象可能是一个无限迭代器。Python中的
zip
函数与压缩没有任何关系。你到底想做什么?你想压缩一些东西吗?你为什么打电话给
zip
?您想要的输出是什么?您似乎误解了
zip
正在压缩您的数据。事实并非如此。它正在执行“压缩”。这将获取两个序列,并在同一位置返回其每个元素的一对。就像“拉链”。它与.zip存档文件格式无关。这对我有很大帮助@juanpa.arrivillaga,@AhmedAbdulSalam是的,一般来说,你需要将对象具体化为numpy能够理解的东西,理想情况下,一系列序列,如果要传递
np.array
构造函数,则类似于
列表的
列表。一个
zip
对象不是它能理解的东西,事实上,一个
zip
对象可能是一个无限迭代器。这里的要点是我执行了code data=np.array(zip(x,y,z)),现在我想看看存储在该“数据”中的数据我怎么能看到…@AhmedAbdulSalam那里没有存储数据。您已经用
dtype=object
创建了一个
numpy
数组,其中包含一个
zip
对象。这就是数组中的数据。到目前为止,你已经在一定程度上消除了我的困惑。。你能考虑给我一个参考链接,通过我可以理解你正在谈论的条款…?YT链接会有帮助。泰。这可能是zip()的一个有用的介绍。如果你能给我指点一下就好了。。我只有上面的主代码。。你能告诉我我应该获得什么知识吗?目标?这里的要点是我执行了代码data=np.array(zip(x,y,z)),现在我想查看存储在该“数据”中的数据。我该如何查看?@AhmedAbdulSalam那里没有存储数据。您已经用
dtype=object
创建了一个
numpy
数组,其中包含一个
zip
对象。这就是数组中的数据。到目前为止,你已经在一定程度上消除了我的困惑。。你能考虑给我一个参考链接,通过我可以理解你正在谈论的条款…?YT链接会有帮助。泰。这可能是一个有用的提示