在Python的NumPy中创建数组时,方括号和括号之间的区别

时间:2017-06-27 22:42:24

标签: python arrays numpy

创建数组有两个选项:

x = numpy.array([[5, 5, 3, 2], [2, 1, 0, 9], [3, 7, 6, 0]])
y = numpy.array([(5, 5, 3, 2), (2, 1, 0, 9), (3, 7, 6, 0)])

但他们有相同的输出。

[[5 5 3 2]
[2 1 0 9]
[3 7 6 0]]

他们有相同的类型:

<class 'numpy.ndarray'>  

哪一个更好,有什么区别?

2 个答案:

答案 0 :(得分:5)

Python tuples(带圆括号,如UIControlEventEditingChanged)和列表(带方括号,如(1,4,2,5)) 。元组是不可变的有序集合:一旦构造,长度和元素都不能改变(但是,如果这些元素是可变的,则可以改变单个元素的状态)。两者都使用for different purposes

但是如果你构造一个 2d numpy数组,那么两者都将导致相同的数组,因为numpy只会读取中的元素 list / tuple并将数据复制到数组中。只有当例如行具有不同的长度时,numpy才会构造一个对象数组,然后它将引用元组/列表。

答案 1 :(得分:2)

从numpy的角度来看 - 两个选项之间没有区别:结果数组在所有内容中都是“相同的”。