1.维度ndim 这个属性储存的是维度的数量。
举例说明:首先生成一个2,12的数组。
In:import numpy as np
b = np.arange(24).reshape(2,12)
b
b.ndim
>>>b
Out:array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11],
[12, 13, 14, 15, 16, 17, 18, 19, 20, 21,22, 23]])
>>>b.ndim
2
2.元素的数量,size属性用来保存元素的数量,用法如图所示。
In:b.size
Out:24
3.itemsize 可以返回数组中个个元素的所占的字节数
In:b.itemsize
Out:4
4.nbytes 这个属性可以返回储存整个数组所需的字节之和
In:b.nbytes
Out:96
In:b.size *b.itemsize
Out:96
可见 size*itemsize= nbytes
5.T:这个属性与前面的transpose()类似
比如说
In:b.resize(6,4)
Out: array([[0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
In:b.T
Out: array([[0, 4, 8, 12, 16, 20],
[ 1, 5, 9, 13, 17, 21],
[ 2, 6, 10, 14, 18, 22],
[ 3, 7, 11, 15, 19, 23]])
与矩阵的转置一样。
6.特别的 如果数组的rank(秩)小于2那么ndim函数只会得到一个一维数组的视图。
for example:
In:c= np.arange(5)
c.ndim
Out:1
In:c.T
Out:array([0, 1, 2, 3])
7.对于numpy数组来说用j代表复数
生成一个复数数组的操作是这样的:
>>> c=array([[1,2],[3,4]],dtype=complex)
>>> c
array([[1.+0.j, 2.+0.j],
[3.+0.j, 4.+0.j]])
>>> c.dtype
8.real 属性将返回数组的实部(实数的部位),当数组全部为实数的时候,就返回数组本身。
复数数组:
>>> e = array([1,2],dtype =complex)
>>> e
array([1.+0.j, 2.+0.j])
>>> e.real
array([1., 2.])
实数数组
>>> p = np.arange(24).reshape(6,4)
>>> p
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
>>> p.real
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]])
9.imag属性存放的是复数数组的虚部
>>> e = array([1,2],dtype =complex)
>>> e
>>> e.imag
array([0., 0.])
10如果数组中含有复数,那么他的数据类型会自动转换为复数类型。
>>> e.dtype
dtype('complex128')
>>> e.dtype.str
'<c16'
11.flat属性 这个属性可以返回一个numpy.flatiter对象。划重点!!!这是唯一能获得flatiter对象的方法。划重点!!但是这个flatiter的构造函数是不能访问的。不过可以使用迭代器来进行访问。比如
In:b = arange(24).reshape(6,4)
In:f = b.flat
In : f
Out:<numpy.flatiter object at0x026E6C78>
In:for item in f :
print(item)
Out:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
当然 虽然那一串巴拉巴拉的英文你看不懂 用for循环的方法来遍历你又觉得麻烦。那么我们可以用 直接取得的方法来获得
比如?
In;b.flat[2]
Out:2
也可以一次请求多个元素
In:b.flat[1,3,4]
Out:array([1, 3, 4])
以上就是numpy数组属性的介绍了。鉴于本人只是个小白,所以就不做任何应用了!