我在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