一、实验目的
- 了解numpy库的基本功能
- 掌握Numpy库的对数组的操作与运算
二、实验工具:
- Anaconda
- Numpy
- python
三、Numpy简介
Numpy 的英文全称为 Numerical Python,指Python 面向数值计算的第三方库。Numpy 的特点在于,针对 Python 内建的数组类型做了扩充,支持更高维度的数组和矩阵运算,以及更丰富的数学函数。Numpy 是 Scipy.org 中最重要的库之一,它同时也被 Pandas,Matplotlib 等我们熟知的第三方库作为核心计算库。
NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
Numpy包括了:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。Numpy和稀疏矩阵运算包scipy配合使用更加方便。
四、实验内容
1.数组的创建(创建全0数组,全1数组,随机数数组)
import numpy as np
arr = np.zeros((5,),dtype=np.int)
print(arr)
arr1 = np.ones((5,),dtype=np.int)
print(arr1)
arr2 =np.random.randint(0,10,(2,5))
print(arr2)
2.数组的属性(查看数组的维度,数组元素的个数)
import numpy as np
arr = np.array([[1,2,3,4,5],[1,4,5,6,7]])
print("数组的维度:")
print(arr.shape)
print("数组元素的个数:")
print(arr.size)
3. 数组的维度操作(将数组的行变列,返回最后一个元素,返回第2到第4个元素,返回逆序的数组)
import numpy as np
arr = np.array([[1,2,3,4,5],[1,4,5,6,7]])
print(arr.T)
print(arr[-1])
a = np.arange(9)
print(a)
print(a[-1])
print(a[2:4])
print(a[::-1])
4.数组的合并(数组的水平合并,垂直合并,深度合并)
import numpy as np
a = np.arange(9).reshape(3,3)
b = np.arange(9,18).reshape(3,3)
print(a)
print(b)
print("水平合并:")
print(np.hstack((a,b)))
print("垂直合并:")
print(np.vstack((a,b)))
print("深度合并:")
print(np.dstack((a,b)))
5.数组的拆分(数组的水平拆分,垂直拆分,深度拆分)
import numpy as np
a = np.arange(9).reshape(3,3)
print(a)
print("水平拆分:")
print(np.hsplit(a,3))
print("垂直拆分:")
print(np.vsplit(a,3))
a = np.arange(27).reshape(3,3,3)
print("深度拆分:")
print(np.dsplit(a,3))
6. 数组运算(与常的四则运算,与数组的四则运算,判断数组是否相等)
import numpy as np
a = np.arange(4,dtype=np.float32).reshape(2,2)
b = np.arange(4,8,dtype=np.float32).reshape(2,2)
print(“数组a:”,a)
print(“数组b”,b)
print(“数组和常数进行四则运算:”)
print(a+2)
print(a-2)
print(a2)
print(a//2)
print(“数组和数组进行四则运算”)
print(a+b)
print(a-b)
print(ab)
print(a//b)
print(“判断数组是否相等:”)
(a==b).all()
7. 数组的常用函数(数组所有元素的和、积、平均值、最大值、最小值、元素替换、方差、标准差)
import numpy as np
a = np.array([3,2,4])
print(“所有元素和:”,a.sum())
print(“所有元素乘积:”,a.prod())
print(“所有元素的算术平均值:”,a.mean())
print(“所有元素的最大值:”,a.max())
print(“所有元素的最小值:”,a.min())
#小于3的元素替换为3,大于4的元素替换为4
print(“元素替换:”,a.clip(3,4))
print(“方差:”,a.var())
print(“标准差:”,a.std())