【问题标题】:Difference between array() and [] Pythonarray() 和 [] Python 之间的区别
【发布时间】:2021-06-10 18:43:37
【问题描述】:

我有一个小问题。

我想知道: array() 与 []

相同

一个例子:

是:

[[1,2,2],[1,2,8]]

等于:

array([1,2,2],[1,2,8])

?请您解释一下使用的区别和示例。

我的代码:

import numpy as np
x = np.array(([1,2,2], [1,4,3], [1,2,9]))
x = np.full(x.shape, 10)
print(x)

我明白了:

[[10,10,10],[10,10,10],[10,10,10]]

我想:

array([10,10,10], [10,10,10], [10,10,10])

【问题讨论】:

  • 最初的 cmets 没有提供任何有用信息的原因是因为最初的问题没有以有用的方式提出。由于您编辑包含minimal reproducible example,所以这个问题更有意义。您在没有array() 的情况下看到它的原因是print() 调用。打印数组时,repr 只是将内容显示为列表
  • @LuckyFr no array() 没有 == [[]]。您只是看到了 numpy.ndarray 对象是如何打印的。当你print某事时,不要太担心你看到的东西。检查对象的type。你会看到你的代码生成了一个numpy.ndarray 对象,而不是list,如果这是你害怕的话
  • @LuckyFr 没有。您可以通过运行代码并检查类型自行解决此问题

标签: python arrays list numpy


【解决方案1】:

很多 cmets 都关注主题行,列表和 numpy 数组的区别。但是这个例子都是关于一个numpy数组的显示。

你的例子:

In [272]: x = np.array(([1,2,2], [1,4,3], [1,2,9]))
     ...: x = np.full(x.shape, 10)
In [273]: x
Out[273]: 
array([[10, 10, 10],
       [10, 10, 10],
       [10, 10, 10]])
In [274]: print(x)
[[10 10 10]
 [10 10 10]
 [10 10 10]]

print 是数组的 str 显示。注意缺少的逗号。 repr 显示包括逗号和单词“数组”

In [275]: print(repr(x))
array([[10, 10, 10],
       [10, 10, 10],
       [10, 10, 10]])

列表的显示:

In [276]: x.tolist()
Out[276]: [[10, 10, 10], [10, 10, 10], [10, 10, 10]]

专注于列表与数组的“重复”:

Python: Differences between lists and numpy array of objects

来自 cmets 的一些例子:

In [277]: np.array()
Traceback (most recent call last):
  File "<ipython-input-277-e4f3b47dc252>", line 1, in <module>
    np.array()
TypeError: array() missing required argument 'object' (pos 1)

制作一个没有任何元素的二维数组:

In [278]: np.array([[]])
Out[278]: array([], shape=(1, 0), dtype=float64)

制作一个包含 1 个元素的 0d 数组:

In [279]: np.array(34)
Out[279]: array(34)
In [280]: np.array(34).shape
Out[280]: ()

数组的尺寸和形状范围很广,从 0d 到(最大 32)。取决于您来自哪里,2 以外的维度可能很难描绘。

数组和列表的显示一般在括号的嵌套中匹配。

【讨论】:

    猜你喜欢
    • 2018-08-30
    • 2012-05-21
    • 2019-01-28
    • 2016-05-12
    • 2012-12-23
    • 2016-05-03
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多