文章目录
1、numpy的安装
python环境下直接使用pip或者conda安装
pip install numpy
conda install numpy
2、numpy的介绍
- numpy是一个开源的python科学计算库,用于快速处理任意维度的数组。
- numpy支持常见的数组和矩阵操作,对于同样的数值计算任务,使用numpy比使用python要简洁的多。
- numpy的大部分代码都是C语言写的,其底层算法在设计时就有着优异的性能,这使得numpy比纯python代码要高效得多。
3、创建一维数组
In [1]: import numpy as np
In [2]: np.array([1,2,3]) # 直接传入列表创建
Out[2]: array([1, 2, 3])
In [3]: np.array(range(5)) # 传入range生成序列创建
Out[3]: array([0, 1, 2, 3, 4])
In [4]: np.arange(0,6,2) # 使用numpy自带的np.arange()创建
Out[4]: array([0, 2, 4])
4、创建二维数组
In [5]: list1 = [[2,3],[4,5],[7,8]]
In [6]: np.array(list1) # 传入二层嵌套列表创建
Out[6]:
array([[2, 3],
[4, 5],
[7, 8]])
In [7]: np.ones((2,3)) # 创建全是1的指定形状的数组
Out[7]:
array([[1., 1., 1.],
[1., 1., 1.]])
In [8]: np.zeros((2,3)) # 创建全是0的指定形状的数组
Out[8]:
array([[0., 0., 0.],
[0., 0., 0.]])
In [9]: np.random.randint(0,10,(4,4)) # 使用自带的random.randint 生成随机数创建
Out[9]:
array([[9, 0, 1, 0],
[6, 0, 8, 3],
[1, 3, 5, 7],
[5, 0, 7, 7]])
5、numpy的常用属性和方法
In [10]: list1 = [[2,3],[4,5],[7,8]]
In [11]: t1 = np.array(list1)
# 属性
In [12]: t1.dtype # dtype,获取元素的数据类型
Out[12]: dtype('int32')
In [13]: t1.ndim # ndim,获取数组的维度
Out[13]: 2
In [14]: t1.shape # shape,获取数组的形状(行, 列)
Out[14]: (3, 2)
In [15]: t1.itemsize # itemsize,获取每个元素的字节单位长度
Out[15]: 4
In [16]: t1.size # size,获取数组的元素个数
Out[16]: 6
# 方法
In [17]: t1.T # 数组的转置,得到转置后的数组
Out[17]:
array([[2, 4, 7],
[3, 5, 8]])
In [18]: t1.astype(np.int64) # astype(),修改元素的数据类型
Out[18]:
array([[2, 3],
[4, 5],
[7, 8]], dtype=int64)
In [19]: t1.tolist() # tolist(),将数组转成列表
Out[19]: [[2, 3], [4, 5], [7, 8]]
In [20]: t1 = t1.reshape(2,3) # reshape(),改变数组的形状
In [21]: t1
Out[21]:
array([[2, 3, 4],
[5, 7, 8]])
In [22]: t1.reshape(-1,1) # reshape(-1,1)用于将包含n个元素的数组转成n行1列的二维数组
Out[22]:
array([[2],
[3],
[4],
[5],
[7],
[8]])
In [23]: np.arange(24).reshape(2,3,4) # 转成三维数组
Out[23]:
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 [24]: np.max(t1) # 获取所有数据的最大值
Out[24]: 8
In [25]: np.max(t1, axis=0) # 获取0轴的最大值
Out[25]: array([5, 7, 8])
In [26]: np.sum(t1) # 获取所有数据的求和
Out[26]: 29
In [30]: np.cumsum(t1)
Out[30]: array([ 2, 5, 9, 14, 21, 29], dtype=int32) # 获取数据的累计和
属性 shape 和 方法 reshape()的区别:
In [31]: list1 = [[2,3],[4,5],[7,8]]
In [32]: t1 = np.array(list1)
In [