chapter.numpy1.1 ndarray多维数组
目录
- 乍见之欢
- ndarray是什么
- 创建ndarray数组
- ndarray数据类型转换
- 久处不厌
- 数组变换
乍见之欢
ndarray是什么
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
ndarray 对象是用于存放同类型元素的多维数组。
ndarray 中的每个元素在内存中都有相同存储大小的区域。ndarray对象是一个快速而灵活的数据集容器。
创建ndarray数组
通过numpy中的array函数就可以创建ndarray数组。
注:numpy能将序列数据(列表,元组,数组等)转化为ndarray数组。
实例:
运行结果:
[1 3 5 7 9] [0 2 4 6 8] [[1 3 5 7 9][0 2 4 6 8]]当创建好ndarray数组时,会同时存储ndarray的shape和dtype,shape为数组维度大小和长,dtype为ndarray的数据类型。
例:
运行结果:
[1 3 5 7 9] (5,) int32当数组中有整形和浮点型数据时,dtype数据类型为浮点型。
例:
运行结果:
[1. 3. 5.3 7. 9. ] (5,) float64除了np.array方法创建数组外,还可以使用其他一些函数创建,例:zeros函数,zeros函数可以创建指定长度全为0的数组。ones函数,可以创建指定长度全为1的数组。empty函数,可以创建一个没有具体数值得数组。arange函数类似于range。
import numpy as np array1=np.zeros(5) array2=np.zeros((3,5)) array3=np.ones(5) array4=np.ones((3,5)) array5=np.empty((3,3,3)) array6=np.arange(5) print(array1) print(array2) print(array3) print(array4) print(array5) print(array6)运行结果:
[0. 0. 0. 0. 0.] [[0. 0. 0. 0. 0.][0. 0. 0. 0. 0.][0. 0. 0. 0. 0.]] [1. 1. 1. 1. 1.] [[1. 1. 1. 1. 1.][1. 1. 1. 1. 1.][1. 1. 1. 1. 1.]] [[[6.23042070e-307 1.89146896e-307 1.37961302e-306][6.23053614e-307 6.23053954e-307 9.34609790e-307][8.45593934e-307 9.34600963e-307 9.34603000e-307]][[9.34593493e-307 1.86920872e-306 6.23054972e-307][1.42419530e-306 8.90098127e-307 8.01106038e-307][8.45603441e-307 6.23059726e-307 2.22522597e-306]][[1.06810268e-306 6.23052935e-307 1.33511562e-306][6.89805151e-307 2.22522597e-306 1.33511969e-306][8.34426039e-308 2.10081501e-312 2.10081501e-312]]] [0 1 2 3 4]ndarray数据类型转换
数组的数据类型有很多种,常见的数据类型为:整数(int)浮点数(float)复数(complex)布尔值(bool)字符串(_string)
数据类型转换函数astype
实例:
运行结果:
float64转换为整数
import numpy as np data=[1,3,5.3,7,9] array=np.array(data) print(array) print(array.dtype) array=array.astype(np.int) print(array) print(array.dtype)运行结果:
[1. 3. 5.3 7. 9. ]#转换前 float64#类型 [1 3 5 7 9]#转换后 int32#类型注:浮点数转化为整数时,小数点后全部截断。不是四舍五入。
久处不厌
数组变换
数组重塑
对于定义好的数组可以使用reshape方法改变数组维度。
实例:
运行结果:
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [[0. 0.][0. 0.][0. 0.][0. 0.][0. 0.]]多维数组同样也可以重塑。
相反的数据散开函数ravel,扁平化flatten函数
运行结果:
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [[0. 0.][0. 0.][0. 0.][0. 0.][0. 0.]] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]数组合并
数组的合并用于几个数组间的操作,concatenate方法通过指定轴方向,即将多个数组合并在一起。
运行结果:
[[0 1][2 3][4 5][6 7][8 9]] [[10 11][12 13][14 15][16 17][18 19]] [[ 0 1][ 2 3][ 4 5][ 6 7][ 8 9][10 11][12 13][14 15][16 17][18 19]]数组合并也可以使用vstack和hstack
import numpy as np array1=np.arange(10).reshape((5,2)) print(array) array2=np.arange(10,20).reshape(5,2) print(array2) print(np.vstack([array1,array2]))运行结果同上。
import numpy as np array1=np.arange(10).reshape((5,2)) print(array) array2=np.arange(10,20).reshape(5,2) print(array2) print(np.hstack([array1,array2]))运行结果:
[[0 1][2 3][4 5][6 7][8 9]] [[10 11][12 13][14 15][16 17][18 19]] [[ 0 1 10 11][ 2 3 12 13][ 4 5 14 15][ 6 7 16 17][ 8 9 18 19]]数组拆分
使用split方法进行拆分。
运行结果:
[array([[ 0, 1, 10, 11],[ 2, 3, 12, 13]]), array([[ 4, 5, 14, 15]]), array([[ 6, 7, 16, 17],[ 8, 9, 18, 19]])]数组转置
使用transpose方法可以实现转置。
T属性同样可以用来转置。
总结
以上是生活随笔为你收集整理的chapter.numpy1.1 ndarray多维数组的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 2016计算机国二试题,全国计算机等级考
- 下一篇: 针对报错 ValueError: Whe