我在numpy中遇到以下语句:

x=numpy.zeros((2,2),dtype=[('x','i4'),('y','i4')])


输出是这样的:

[[(0,0)(0,0)]
 [(0,0)(0,0)]]


[('x','i4'),('y','i4')]是什么意思?请解释。

最佳答案

这就是数组元素被赋予名称和数据类型的方式。

在这种情况下,可以使用'x'访问数组中每个条目的第一个元素的名称,而可以使用'y'访问第二个元素的名称:

>>> x['x']
array([[0, 0],
       [0, 0]])
>>> x['y']
array([[0, 0],
       [0, 0]])


如果我们更改条目之一,则更清楚:

>>> x['x'] = numpy.array([[1,1],[1,1]])
>>> x
array([[(1, 0), (1, 0)],
       [(1, 0), (1, 0)]], dtype=[('x', 'i4'), ('y', 'i4')])


如您所见,每个条目中的第一个元素都已更改。

'i4'部分指定元素的数据类型。特别:

i表示有符号整数

4表示4字节大小

请参阅文档here

10-08 13:25