热线电话:13121318867

登录
2023-08-09 阅读量: 412
numpy数组的属性

当一个数组构建好后,我们看看关于数组本身的操作又有哪些属性和函数:

In [24]: arr3

Out[24]:

array([[ 1, 1, 2, 3],

[ 5, 8, 13, 21],

[ 34, 55, 89, 144]])

In [25]: arr3.shape #shape方法返回数组的行数和列数

Out[25]: (3, 4)

In [26]: arr3.dtype #dtype方法返回数组的数据类型

Out[26]: dtype('int32')

In [27]: a = arr3.ravel() #通过ravel的方法将数组拉直(多维数组降为一维数组)

In [28]: a

Out[28]: array([ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144])

In [29]: b = arr3.flatten() #通过flatten的方法将数组拉直

In [30]: b

Out[30]: array([ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144])

两者的区别在于ravel方法生成的是原数组的视图,无需占有内存空间,但视图的改变会影响到原数组的变化。而flatten方法返回的是真实值,其值的改变并不会影响原数组的更改。

通过下面的例子也许就能明白了:

In [31]: b[:3] = 0

In [32]: arr3

Out[32]:

array([[ 1, 1, 2, 3],

[ 5, 8, 13, 21],

[ 34, 55, 89, 144]])

通过更改b的值,原数组没有变化。

In [33]: a[:3] = 0

In [34]: arr3

Out[34]:

array([[ 0, 0, 0, 3],

[ 5, 8, 13, 21],

[ 34, 55, 89, 144]])

a的值变化后,会导致原数组跟着变化。

In [35]: arr4

Out[35]:

array([[ 1, 2, 3, 4],

[ 5, 6, 7, 8],

[ 9, 10, 11, 12]])

In [36]: arr4.ndim #返回数组的维数

Out[36]: 2

In [37]: arr4.size #返回数组元素的个数

Out[37]: 12

In [38]: arr4.T #返回数组的转置结果

Out[38]:

array([[ 1, 5, 9],

[ 2, 6, 10],

[ 3, 7, 11],

[ 4, 8, 12]])

如果数组的数据类型为复数的话,real方法可以返回复数的实部,imag方法返回复数的虚部。


0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据