Python的NumPy中创建数组时方括号和圆括号的区别

5

有两种选项可以创建数组:

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
对于像这样的数字数组,它们是可以互换的。一个是列表的列表,另一个是元组的列表。在创建结构化数组时,需要使用元组的列表,但这可能是一个更高级的主题。 - hpaulj
2个回答

9

Python元组(用圆括号表示,例如(1,4,2,5))和列表(用方括号表示,例如[1,4,2,5])。元组是不可变的有序集合:一旦构建,长度和元素都不能更改(但可以改变单个元素的状态,如果这些元素是可变的)。两者用于不同的目的

但是,如果构造一个二维numpy数组,那么两者将得到相同的数组,因为numpy将简单地读取列表/元组中的元素并将数据复制到数组中。仅当行具有不同的长度时,numpy才会构造一个对象数组,然后它将引用元组/列表。


2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接