在python的实际使用中,numpy库的使用非常频繁,所以进行一次简单的学习
import numpy as np
k=np.array([]) #注意如此创建数组,元素类型默认为float,dtype属性可以改变数组元素的数据类型
k=np.append(k,[0])#记得返回赋值k=,函数不影响第一个变量
print(k)
g=k.shape #多维数组的维度
h=k.reshape(a,b)#多维数组k重组成a行b列
注意,list和np.array在接受不同的元素添加的时候,处理方式不同
import numpy as np
print("List:")
j=[0]*5
j.append(1.5)
print(j)
print(type(j[0]))
print()#list接纳新类型的元素,元素之间互不影响数据类型
print("np.array:")
i=np.array([0]*5)
print("1.",i)
i=np.append(i,1.5)
print("2.",i)
i=np.append(i,"s")
print("3.",i)
print(type(i[0])) #np数据接受新数据类型时,会统一数据类型,int
import numpy as np
k=np.linspace(a,b,c)#创建一个数组,a到b(闭区间),c个元素
k = np.arange(a,b,c)#创建一个数组,a到b(左闭右开区间),步伐为c
k=np.eye(n)#创建n阶的单位矩阵
k=np.eye(a,b)#创建a行b列的单位矩阵
k=numpy.diag([*****])#可以定义一个具有沿对角线给定值的方形二维数组
k=vander(x, n)#Vandermonde 矩阵的每一列都是输入一维数组或列表或元组的递减幂, x其中最高多项式阶为n-1。此数组创建例程有助于生成线性最小二乘模型
k=np.zeros((a,b))#创建一个a行b列的全零数组,注意接受的参数是一个元组
k=np.ones((a,b))#创建一个a行b列的全1数组,注意接受的参数是一个元组
from numpy import random
a=random.default_rng(42).random((2,3))
a=random.default_rng(42).random((a,b))
#randomresult的方法 default_rng将创建一个数组(a行b列),其中填充了 0 到 1 之间的随机值。它包含在numpy.random 库中
np库中数组的直接切片是浅拷贝,深拷贝可以使用copy
a = np.array([1, 2, 3, 4, 5, 6])
b = a[:2]#浅拷贝
c = a[:2].copy() #深拷贝
a = np.array([1,1])
b=np.array([2,2])
c = np.array([3,3])
d = np.array([4,4])
k=np.block([[a,b],[c,d]])
print(k)
>>>>[[1 1 2 2]
[3 3 4 4]]
a=np.array([[1,2],[3,4]])
b=np.array([[3,4],[7,8]])
c=np.concatenate((a,b),axis=0) #行连接
d=np.concatenate((a,b),axis=1) #列连接
print("c:")
print(c)
print("d:")
print(d)
import numpy as np
a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
print(a)
print(a[1:3,1:3]) #!!注意和a[1:3][1:3]的区别
np.nonzero(a > 0.5) #找到其中 ( a> 0.5)的索引,返回n个数组,每个数组表示满足条件的元素的每个维度,例如零行1列满足条件则为[0,...][1,...]
c=a[a>5] #返回满足条件的元素组成的一维数组
a[a < 0.5]=0#a 元素小于 0.5 归零
d=a>5 #返回a中判断是否满足条件的布尔数组
a=np.array([[1,2,3],[1,2,3],[1,2,3]])
b=np.array([[4,5,6],[4,5,6],[1,2,3]])
c=a*b #*运算的是点乘
c=a+3 #每个元素都加
np.sort(arr) #排序
a=b[::-1] #逆序 对于一维数组
np.ndim(a) #求维度
a[::-1,:] #a 以相反的顺序行
a.transpose()/a.T#转置 a
a @ b #矩阵乘法
a/b #按元素划分,逐元素除
a**3#按元素求幂
np.meshgrid([1,2,4],[2,4,5])#创建网格??
c=a.max() #最大值
c=a.max(n) #第n维的最大值
np.linalg.norm(v)#L2 norm of vector v
numpy更多计算函数使用