这次学习numpy包,也是按照官方的tutorial 来学习的,地址为https://docs.scipy.org/,总体感觉这个包的好多语法都和matlab相似。学习使用Spyder这个软件,软件既可以交互式的操作也可以工程式的编程,还可以像Matlab一样可以查看变量,以及历史命令,总之特别好用。废话不说这么多了,下面直接进入正题:
首先导入模块
import numpy as np
1、介绍了这个包主要是对数组中的元素进行操作,类型为ndarray,介绍了几种主要的属性
ndarray.ndim 数组的维度
ndrarry.shape 数组各维度的值,结果为N*M
ndrarry.size 数组的所有元素个数
ndrarry.dtype 元素的类型 ,默认为float64
ndrarry.itemsize 每个元素所占的字节
ndrarry.data 数组中的元素
举个例子:
import numpy as np
a=np.arange(12).reshape(2,2,3)
a.ndim
a.shape
a.size
a.dtype
a.itemsize
a.data
#可以使用np.array() 生成数组
b=np.array([2,3,4]) #生成数组的时候要加’ [ ]' ,不加的话会显示错误
b.dtype
print(b)
#也可以利用关键字参数dtype,生成需要的复数
c=np.array([[1,2],[3,4]],dtype=complex)
c
c.dtype.name
#特殊矩阵的生成,zeros,ones,empty
#用法:
d=np.zeros((3,4)) #生成3*4的矩阵
d
e=np.ones((2,3),dtype=np.int16) #2*3的单位矩阵
e
f=np.empty((2,3)) #生成2*3的随机矩阵,并不是真正的随机,其实是根据内存中存储的信息生成
f
#可以使用arange,linspace生成序列
a=np.arange(0,2,0.3) #从0到2,以步长为0.3增长
a
b=np.linspace(0,2,9) #从0到2,均等的取9个
print(b)
f=np.sin(b)
print(f)
#对数组进行的基本操作
a=np.array([20,30,40,50])
b=np.arange(4)
print(b)
c=a-b #各个元素之间进行减法,必需是相同维度的数组才能进行加减操作
print(c)
print(b**2) #对b的每个元素进行平方
print(10*np.sin(a))
print(a<35)
# dot乘法与*的不同
A = np.array( [[1,1],[0,1]])
B=np.array([[2,0],[3,4]])
A*B #A中的每个元素与B的对应元素相乘
A.dot(B) #线性代数中的A*B
np.dot(A,B)
#最大值,最小值,以及对行、列的选择参数axis
a=np.arange(12).reshape(3,4)
print(a)
a.min() #默认是对所有元素求最小
a.min(axis=0) #axis=0 是对每一列元素求最小
a.max()
a.max(axis=1) #axis=1 是对每一行元素求最大,求和函数也类似
a.cumsum(axis=1) #对每一行元素进行累加求和,每行结束之后重新开始