Python NumPy库安装使用笔记

1.NumPy安装使用pip包管理工具进行安装复制代码代码如下:$sudopipinstallnumpy使用pip包管理工具安装ipython(交互式shell工具)

1. NumPy安装
使用pip包管理工具进行安装
复制代码 代码如下:
$ sudo pip install numpy

使用pip包管理工具安装ipython(交互式shell工具)
复制代码 代码如下:
$ sudo pip instlal ipython
$ ipython –pylab  #pylab模式下,会自动导入SciPy,NumPy,Matplotlib模块

2. NumPy基础

2.1. NumPy数组对象

具体解释可以看每一行代码后的解释和输出
复制代码 代码如下:
In [1]: a = arange(5)  # 创建数据
In [2]: a.dtype
Out[2]: dtype(‘int64’)  # 创建数组的数据类型
In [3]: a.shape  # 数组的维度,输出为tuple
Out[3]: (5,)
In [6]: m = array([[1,2],[3,4]])  # array将list转换为NumPy数组对象
In [7]: m  # 创建多维数组
Out[7]:
array([[1,
       [3,4]])
In [10]: m.shape  # 维度为2 * 2
Out[10]: (2,2)
In [14]: m[0,0]  # 访问多维数组中特定位置的元素,下标从0开始
Out[14]: 1
In [15]: m[0,1]
Out[15]: 2

2.2. 数组的索引和切片

复制代码 代码如下:
In [16]: a[2: 4]  # 切片操作类似与Python中list的切片操作
Out[16]: array([2,3])
In [18]: a[2 : 5: 2]  # 切片步长为2
Out[18]: array([2,4])
In [19]: a[ : : -1]  # 翻转数组
Out[19]: array([4,3,2,1,0])
In [20]: b = arange(24).reshape(2,4)  # 修改数组的维度
In [21]: b.shape
Out[21]: (2,4)
In [22]: b  # 打印数组
Out[22]:
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 [23]: b[1,3]  # 选取特定元素
Out[23]: 23
In [24]: b[ :,0]  # 忽略某个下标可以用冒号代替
Out[24]: array([ 0,12])
In [23]: b[1,3]
Out[23]: 23
In [24]: b[ :,0]  # 忽略多个下标可以使用省略号代替
Out[24]: array([ 0,12])
In [26]: b.ravel()  # 数组的展平操作
Out[26]:
array([ 0,  3,  4,  7,  8,11,12,15,16,
       17,19,20,23])
In [27]: b.flatten()  # 与revel功能相同,这个函数会请求分配内存来保存结果
Out[27]:
array([ 0,23])
In [30]: b.shape = (6,4)  # 可以直接对shape属性赋值元组来设置维度
In [31]: b
Out[31]:
array([[ 0,
       [ 4,
       [ 8,11],
       [12,
       [16,
       [20,23]])
In [30]: b.shape = (6,4)  # 矩阵的转置
In [31]: b
Out[31]:
array([[ 0,23]])

2.3. 组合数组

复制代码 代码如下:
In [1]: a = arange(9).reshape(3,3)  # 生成数组对象并改变维度
In [2]: a
Out[2]:
array([[0,4,5],
       [6,7,8]])
In [3]: b = a * 2  # 对a数组对象所有元素乘2
In [4]: b
Out[4]:
array([[ 0,  4],
       [ 6,10],16]])
#######################
In [5]: hstack((a,b))  # 水平组合数组a和数组b
Out[5]:
array([[ 0,  0,
       [ 3,16]])
      
In [6]: vstack((a,b))  # 垂直组合数组a和数组b
Out[6]:
array([[ 0,  2],  5],  8],
       [ 0,16]])
In [7]: dstack((a,b))  # 深度组合数组,沿z轴方向层叠组合数组
Out[7]:
array([[[ 0,  0],
        [ 1,
        [ 2,  4]],
       [[ 3,  6],
        [ 5,10]],
       [[ 6,12],
        [ 7,14],16]]])

2.4. 分割数组

复制代码 代码如下:
In [8]: a
Out[8]:
array([[0,8]])
In [9]: hsplit(a,3)  # 将数组沿水平方向分割成三个相同大小的子数组
Out[9]:
[array([[0],
        [3],
        [6]]),
 array([[1],
        [4],
        [7]]),
 array([[2],
        [5],
        [8]])]
In [10]: vsplit(a,3)  # 将数组沿垂直方向分割成三个子数组
Out[10]: [array([[0,2]]),array([[3,5]]),array([[6,8]])]

2.5. 数组的属性

复制代码 代码如下:
In [12]: a.ndim  # 给出数组的尾数或数组的轴数
Out[12]: 2
In [13]: a.size  # 数组中元素的个数
Out[13]: 9
In [14]: a.itemsize  # 数组中元素在内存中所占字节数(int64)
Out[14]: 8
In [15]: a.nbytes  # 数组所占总字节数,size * itemsize
Out[15]: 72
In [18]: a.T  # 和transpose函数一样,求数组的转置
Out[18]:
array([[0,6],
       [1,7],
       [2,5,8]])

2.6. 数组的转换
复制代码 代码如下:
In [19]: a.tolist()  # 将NumPy数组转换成python中的list
Out[19]: [[0,[6,8]]

3. 常用函数

复制代码 代码如下:
In [22]: c = eye(2)  # 构建2维单位矩阵
In [23]: c
Out[23]:
array([[ 1.,  0.],
       [ 0.,  1.]])
In [25]: savetxt(“eye.txt”,c)  # 将矩阵保存到文件中
In [5]: c,v = loadtxt(“test.csv”,delimiter=”,”,usecols=(0,1),unpack=True)  # 分隔符为,usecols为元组表示要获取的字段数据(每一行的第零段和第一段),unpack为True表示拆分存储不同列的数据,分别存入c,v
In [12]: c
Out[12]: array([ 1.,  4.,  7.])
In [13]: mean(c)  # 计算矩阵c的mean均值
Out[13]: 4.0
In [14]: np.max(c)  # 求数组中的最大值
Out[14]: 7.0
In [15]: np.min(c)  # 求数组中的最小值
Out[15]: 1.0
In [16]: np.ptp(c)  # 返回数组最大值和最小值之间的差值
Out[16]: 6.0
In [18]: numpy.median(c)  # 找到数组中的中位数(中间两个数的平均值)
Out[18]: 4.0
In [19]: numpy.var(c)  # 计算数组的方差
Out[19]: 6.0
In [20]: numpy.diff(c)  # 返回相邻数组元素的差值构成的数组
Out[20]: array([ 3.,  3.])
In [21]: numpy.std(c)  # 计算数组的标准差
Out[21]: 2.4494897427831779
In [22]: numpy.where(c > 3)  # 返回满足条件的数组元素的下标组成的数组
Out[22]: (array([1,2]),)

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部