NumPy 中的数据类型

Sap*_*nha 1 python numpy

我在 numpy 中遇到过以下语句:

x=numpy.zeros((2,2),dtype=[('x','i4'),('y','i4')])
Run Code Online (Sandbox Code Playgroud)

输出如下:

[[(0,0)(0,0)]    
 [(0,0)(0,0)]]
Run Code Online (Sandbox Code Playgroud)

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

jfo*_*kes 5

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

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

>>> x['x']
array([[0, 0],
       [0, 0]])
>>> x['y']
array([[0, 0],
       [0, 0]])
Run Code Online (Sandbox Code Playgroud)

如果我们更改其中一项,这一点会更清楚:

>>> x['x'] = numpy.array([[1,1],[1,1]])
>>> x
array([[(1, 0), (1, 0)],
       [(1, 0), (1, 0)]], dtype=[('x', 'i4'), ('y', 'i4')])
Run Code Online (Sandbox Code Playgroud)

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

这些'i4'部分指定元素的数据类型。具体来说:

i表示有符号整数

4表示 4 字节大小

请参阅此处的文档