NumPy中的数据类型

时间:2018-07-16 15:10:32

标签: python numpy

我在numpy中遇到以下语句:

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

输出如下:

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

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

3 个答案:

答案 0 :(得分:4)

这是给数组元素指定名称和数据类型的方式。

在这种情况下,可以使用'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

答案 1 :(得分:0)

如果您查看结构化数组的docs,则dtype表示numpy数组中值的数据类型。

[('x','i4'),('y','i4')]表示x是32位整数,y也是32位整数。

答案 2 :(得分:0)

此处i4是4字节(32位)整数。

您将在https://docs.scipy.org/doc/numpy-1.14.0/reference/arrays.dtypes.html中找到更多详细信息(i4大约在页面的一半)。