import numpy as np a=np.arange(1,10) print(a)1.2 创建数组(一维和二维)
import numpy as np b=np.array([[1,2,3],[4,5,6],[7,8,9]],dtype=int) print(b) c=np.zeros(9).reshape(3,3) c1=np.zeros((3,3)) print(c) print(c1) d=np.ones(9).reshape(3,3) d1=np.ones((3,3)) print(d) print(d1) e=np.linspace(1,10,10,endpoint=False)#创建等差数列 print(e) f=np.logspace(0,2,20)#创建从10的0次方到10的1次方之间个数为20的等比数列 print(f) g=np.eye(3)#创建单位矩阵 print(g) h=np.diag([1,2,3,4])#创建对角矩阵 print(h) i=np.empty((3,3),dtype=int) print(i) i.fill(2) print(i) j=np.zeros_like(i) print(j) k=np.ones_like(i) print(k) l=np.empty_like(i) print(l)1.3 创建随机数组
# 创建随机数组 np.set_printoptions(2)#保留两位小数 print(np.random.random(100))#随机生成100个0-1范围的一维数组 print(np.random.random((3, 4)))#随机生成3行4列,0-1范围的二维数组 np.random.randint(10,20,20)#随机生成20个整数,10-20范围的一维数组 print(np.random.randint(10, 20, size=[3, 4]))#随机生成3行4列,10-20范围的二维数组 print(np.random.uniform(10, 20, 20))#随机生成20个小数,10-20范围的一维数组 print(np.random.uniform(10, 20, size=[4, 5]))#随机生成4行5列的20个小数,10-20范围的二维数组 #随机生成服从均匀分布的随机数 np.random.rand(6)#生成6个随机数 np.random.rand((3,5))#随机生成3行5列随机数 print(np.random.randn(10, 5))#生成10行5列的正态分布随机数(二维数组) print(np.random.permutation(4))2. 数组的运算 2.1 一维矩阵的运算(+ - * /)
m=np.arange(9)
print(m)
l=np.arange(10,19)
print(l)
print(l+m)#矩阵相加
print(l-m)#矩阵相减
print(l*m)#矩阵相乘
print(l/m)#矩阵相除
print('------------')
print(np.add(l,m))#矩阵相加
print(np.subtract(l,m))#矩阵相减
print(np.multiply(l,m))#矩阵相乘
print(np.divide(l,m))#矩阵相除
2.2 二维数组的计算(+ - * /)
import numpy as np n=np.arange(9).reshape(3,3) print(n) o=np.arange(10,19).reshape(3,3) print(o) print(n+o)#矩阵相加 print(n-o)#矩阵相减 print(np.dot(n, o)) print(n.dot(o))#矩阵相乘
#矩阵的乘法(两个矩阵相乘),注意不能用*
print('AB=n',np.dot(A,B)) #方法一
print('AB=n',A.dot(B)) #方法二
print('BA=n',np.dot(B,A))
print('BA=n',B.dot(A))
2.3 矩阵的拼接
n=np.arange(9).reshape(3,3) o=np.arange(10,19).reshape(3,3) print(np.c_[n,o])#横向拼接,或水平拼接 print(np.hstack((n,o)))#横向拼接,或水平拼接 print(np.vstack((n,o)))#纵向拼接,或垂直拼接 print(np.r_[n,o])#纵向拼接,或垂直拼接 print(np.concatenate([n, o], axis=0))#纵向拼接,或垂直拼接 print(np.concatenate([n, o], axis=1))#横向拼接,或水平拼接2.4 二维数组的运算
import numpy as np p=np.array([[4,6,0],[-3,-5,0],[-3,-6,1]]) print(p) print(p.T)#矩阵的转置方法一 print(np.transpose(p))#矩阵的转置方法二 np.linalg.det(p)#矩阵的行列式 np.linalg.inv(p)#矩阵的逆矩阵 np.linalg.matrix_rank(p)#矩阵的秩2.5 其次和非其次线性方程组的解
import numpy as np p=np.array([[4,6,0],[-3,-5,0],[-3,-6,1]]) print(np.linalg.solve(p, [0, 0, 0]))# 其次次线性方程组的解 print(np.linalg.solve(p, [0, 1, 1]))# 非其次线性方程组的解2.6 特征值和特征向量
import numpy as np p=np.array([[4,6,0],[-3,-5,0],[-3,-6,1]]) r,s=np.linalg.eig(p) print(r)#求特征值 print(s)#求特征向量3. 数组维度的相互转化
# 1.一维变二维 a=np.arange(1,13) print(a.reshape((3, 4)))
#2.一维变为三维 a=np.arange(1,13) print(a.reshape((3, 2, 2)))
#3.多维变一维
import numpy as np
A=np.array([[1,2,3],
[4,9,6],
[9,7,3],
[0,-3,-4]])
print(np.ravel(A))#二维变一维
print(A.ravel())#二维变一维
print(A.flatten())#二维变一维
4. 数组的切片操作
# 一维数组的切片 import numpy as np a=np.arange(1,13) print(a) print(a[2:8])
# 二维数组的切片
import numpy as np
b=np.array([[1,2,3],[9,8,7],[6,4,5]])
print(b)
print(b[1:, 0:3])
b1=np.arange(12).reshape(3,4)
print(b1)
print('获取第2行第3列的元素',b1[1,2])#获取第2行第3列
print('获取第2、3行第1、2列的元素',b1[1: ,1:3])
print('获取最后1列元素',b1[:,-1])
# 多维数组的切片
import numpy as np
c=np.array([[[1,2,3],
[4,5,6],
[7,8,9]],
[[9,8,7],
[6,5,4],
[3,2,1]],
[[9,0,5],
[9,4,1],
[5,3,7]]])
print(c)
print(c[:,1:,1:])#以层、行、列顺序切片
5.数组的基本属性
5.1 一维数组基本属性
#1.一维数组基本属性 b=np.array([3,1,2,7,6.5]) print(b) print(b.shape) print(b.dtype) print(b.ndim) print(b.size) print(b.itemsize)#每个元素字节数 print(b.nbytes)#总的元素字节数
5.2 二维数组基本属性
#2.二维数组基本属性 a=np.array([[1,2,3],[4,5,6]]) print(a) print(a.shape) print(a.dtype) print(a.ndim) print(a.size) print(a.itemsize)#每个元素字节数 print(a.nbytes)#总的元素字节数
#查看数组的行列数
A=np.array([[2,-1,0],
[1,3,1],
[0,1,2]])
print('数组A的行列数',A.shape)
print('数组A的行数',A.shape[0])
print('数组A的列数',A.shape[1])
5.3转化数组元素的类型
(1)定义的同时转换元素的类型
c=np.array([1,2,3],dtype=float)
print('c=',c)
(2)定义好之后转换数据类型
d=np.array([2.1,-4.3,8.9])
print(d)
e=d.astype(int)#保留整数
print(e)
总结:
#创建数组 a=np.arange(1,13) print(a) c=a.reshape(3,4) print(c) b=np.reshape(a,(2,6)) print(b) #创建等差数列 np.linspace(0,10,5) np.linspace(0,10,endpoint=False,retstep=True) # 创建等差比列 np.logspace(1,10,20) # 创建全0数组 d=np.zeros((3,4),dtype=int) print(d) # 创建全1数组 e=np.ones((4,3),dtype=int) print(e) print(d.dot(e)) # 创建单位矩阵 f=np.eye(3,dtype=int) print(f) # 创建对角矩阵 g=np.diag([1,2,3,4]) print(g) # 创建空矩阵 h=np.empty((2,3)) print(h) h.fill(2) print(h) print(np.random.random(size=[2, 3])) #随机种子 np.random.seed(4) A=np.random.randint(1,10,size=[2,3]) print(A)



