NumPy 数组属性
在本章中,我们将讨论NumPy的各种数组属性。
ndarray.shape
该数组属性返回一个元组,表示数组的维度。它还可以用于调整数组的大小。
示例1
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print a.shape
输出结果如下:
(2, 3)
示例2
# this resizes the ndarray
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print a
输出结果如下:
[[1, 2]
[3, 4]
[5, 6]]
示例3
NumPy还提供了一个reshape函数来调整数组的大小。
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print b
输出结果如下 –
[[1, 2]
[3, 4]
[5, 6]]
ndarray.ndim
这个数组属性返回数组的维度数量。
示例1
# an array of evenly spaced numbers
import numpy as np
a = np.arange(24)
print a
输出如下:
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
示例2
# this is one dimensional array
import numpy as np
a = np.arange(24)
a.ndim
# now reshape it
b = a.reshape(2,4,3)
print b
# b is having three dimensions
输出结果如下−
[[[ 0, 1, 2]
[ 3, 4, 5]
[ 6, 7, 8]
[ 9, 10, 11]]
[[12, 13, 14]
[15, 16, 17]
[18, 19, 20]
[21, 22, 23]]]
numpy.itemsize
此数组属性返回数组的每个元素的字节长度。
示例1
# dtype of array is int8 (1 byte)
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.int8)
print x.itemsize
输出结果如下:
1
示例2
# dtype of array is now float32 (4 bytes)
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.float32)
print x.itemsize
输出结果如下:
4
numpy.flags
The ndarray对象具有以下属性。此函数返回其当前值。
序号 | 属性和描述 |
---|---|
1 | C_CONTIGUOUS (C) 数据在一个C风格的连续段中 |
2 | F_CONTIGUOUS (F) 数据在一个Fortran风格的连续段中 |
3 | OWNDATA (O) 数组拥有它使用的内存,或者从另一个对象借用内存 |
4 | WRITEABLE (W) 数据区可以被写入。将其设置为False会锁定数据,使其只读 |
5 | ALIGNED (A) 数据和所有元素对硬件适当地对齐 |
6 | UPDATEIFCOPY (U) 此数组是另一个数组的副本。当释放此数组时,基础数组将使用此数组的内容进行更新 |
示例
以下示例显示了标志的当前值。
import numpy as np
x = np.array([1,2,3,4,5])
print x.flags
输出如下−
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False