Numpy常用函数

1.导入库包

import numpy as np
from numpy import newaxis
from numpy import pi
import matplotlib.pyplot as plt
from numpy import ogrid

2.生成矩阵

#生成数组(矩阵)
#用列表生成矩阵
a = np.array([[1,2,3],[4,5,6]]) #2*3
a = np.array([1,2,3]) #1*3
#用arange生成向量reshape生成矩阵 
a = np.arange(15).reshape(3,5) #生成0开始递增的15个数,然后分成3行5列矩阵
a = np.arange(24).reshape(2,3,4) #生成2*3*4 3维数组
#np.set_printoptions(threshold='nan') #矩阵元素数量过多会自动省略显示,它可以取消省略显示
c = np.array([1,2,3])
c = np.arange(10,100,4) #10,14,18.....98;小数间隔也可
#线性生成向量
c = np.linspace(0,2,9) #生成0-2等间隔的9个数
c = np.ogrid[-100:100:3] #生成-100 - 100等间隔三个数
#生成特殊矩阵
c = np.zeros((4,4)) #生成4*4全0矩阵
c = np.ones((4,4),dtype=float) #生成4*4全1矩阵,浮点型
c = np.eye(2) #生成单位矩阵[[1,0],[0,1]]
c = np.empty((2,3)) #空矩阵,数值不好说
np.ones_like(a)
np.zeros_like(a)
c = np.random.random((2,3)) # √生成随机数矩阵,float
c = np.random.normal(mu,sigma,1000) #生成正态分布的1000个数据

3.矩阵操作

#矩阵的操作
print(np.sin(1))
a = np.ravel(a) # 去除空维度,(51,1)的array可以变为(51,)
a = np.mat(a) #上一步的反运算将a变为矩阵
b = np.floor(a) #矩阵a中没个元素去掉小数点后的数并保存为float格式
print(a.ndim) #指的是二维矩阵即m*n的矩阵(数组),亦称为秩(rank)
np.trace(a) #矩阵的迹,对角线上数之和
print(a.size) #矩阵所包含元素个数
print(a.shape) #矩阵所包含元素形状如(3,4)
print(a.reshape(2,-1)) #变形为2行,列数自动计算,a本身不变
a.resize(16,1) #a本身变形为16行1列,等于a.shape=16,-1
print(a.T) #矩阵的转置,1维向量并且没加入newaxis时失效
np.linalg.inv(a) #矩阵的逆矩阵,a*a-1 = 1
#print(a.data) #实际数组元素的缓冲区

4.矩阵计算

a = np.array([[1,0],[2,3]])
b = np.array([[2,4],[1,5]])
c = a*b #a和b对应位置相乘,与matlab中相反
c = a.dot(b) #等同于c = np.dot(a,b),倆矩阵相乘
a*=b;a+=b;a-=b #这种运算a,b必须同为整型或浮点型,而a+b(np.add(a,b))则可以int+float
np.sum([[0, 1], [0, 5]], axis=1) #横着加
c = a + b #增广计算,慎用a(4*1),b(1*4) c(4*4)
c = np.exp(1) #返回e(2.718)的a次方
c = a**2 #a的平方
c = a.sum(axis = 0 or 1) or a.max() or a.min #矩阵(0对应每列之和,1对应每行之和)的和,最大值与最小值
c = a.argmax(axis=0) #返回矩阵每列最大值对应索引号
a = np.arange(10)
a[0:6:2] = 100 #0,2,4位置数变成100
np.sort(a, axis = '-1', kind = 'quicksort') #排序,axis为对第几行排序
print(a[::-1]) #逆序排列
print(np.all([[True, False], [True, True]])) #与,返回False
print(np.any([[True, False], [True, True]])) #或
ax,bx,cx = np.ix_(a,b,c)  #把a,b,c一维向量变成(x,1,1)(1,x,1)(1,1,x)维度方便他们相乘等



5.矩阵的合并拆分

def f(x,y):
    return x+y
a = np.fromfunction(f,(3,4)) #生成3*4矩阵,每个位置值由x和y计算后得到
a[:,1:3] #返回矩阵a所有行,第2和3列
print(a[-1]) #返回a最后一行,等于a[-1,:]
b = [row for row in a] #row表示每一行,迭代输出每一行
b = [element for element in a.flat] #遍历输出矩阵每一个元素,类似b = a.ravel()
c = np.vstack((a,b)) #竖向合并a,b,等于np.row_stack((a,b))
c = np.hstack((a,b)) #横向合并a,b,等于np.column_stack((a,b))
c = np.hsplit(a,4) #矩阵a分成四等分1(列)|2|3|4
c = np.vsplit(a,4) #矩阵a分成四等分1(行)/2(行)/3/4
c = np.hsplit(a,(1,3)) #矩阵a的第2行和第三行一起被分出来

#r_与c_ 向量连接
np.r_[np.array([1,2,3]), 0, 0, np.array([4,5,6])] #r_用于连接行向量
np.c_[np.array([[1,2,3]]), 0, 0, np.array([[4,5,6]])] #c_用于连接纵向量

6.深浅拷贝

b = a #b变化a跟着变化,简单赋值并没有复制数组。 b is a √
b = a.view() or a[:] #浅拷贝,b和a共享共同的值但是可以有不同的形状。 b is a ×,b.base is a √ 
b = a.copy() #深拷贝,b和a互相独立。b is a ×,b.base is a ×

7.数据的保存和读取

#np.save("a.npy", a) #括号内首先确定保存的文件名,再确认要保存的数据(单个)
#c = np.load( "a.npy" ) #读取数据
#np.savetxt("a.txt", a) #只能保存一个数组
#np.loadtxt("a.txt")

 

#np.savez("biubiu.npz",a,b,c)

#r = np.load("biubiu.npz") #读入时变量列表看不到,输入r["arr_0"]返回a,也可以import导入文件

8.矩阵元素的查找

np.searchsorted([1,2,3,4,5], [-10, 10, 2, 3]) #二分查找输出-10等应该插入的位置
b=np.nonzero(a) #矩阵非0元素位置,二维矩阵a则返回两个向量对应横纵坐标
b=np.where(a>5) #矩阵中大于5的元素的位置
a = np.array([1,2,3,4])
b = np.array([True,False,True,False])
print(a[b])
print(a[a>2])
Python中的NumPy库是一个非常有用的科学计算库,它提供了许多常用函数用于处理数组和矩阵。以下是一些Python中NumPy常用函数的介绍: 1. numpy.array():创建一个NumPy数组。可以传入一个列表或者元组作为参数,返回一个NumPy数组对象。 2. numpy.arange():创建一个具有指定范围和步长的数组。可以设置起始值、结束值和步长,返回一个包含这个范围内所有值的NumPy数组。 3. numpy.zeros():创建一个指定大小的全0数组。可以传入一个表示数组形状的元组或者整数作为参数,返回一个全0的NumPy数组。 4. numpy.ones():创建一个指定大小的全1数组。与numpy.zeros()类似,可以传入一个表示数组形状的元组或者整数作为参数,返回一个全1的NumPy数组。 5. numpy.linspace():在指定的范围内创建均匀间隔的数组。可以设置起始值、结束值和数组长度,返回一个包含指定范围内均匀间隔的元素的NumPy数组。 6. numpy.random.rand():生成指定形状的随机数数组。可以传入一个表示数组形状的元组或者整数作为参数,返回一个包含指定形状的随机数的NumPy数组。 7. numpy.max():返回数组中的最大值。可以传入一个NumPy数组作为参数,返回数组中的最大值。 8. numpy.min():返回数组中的最小值。可以传入一个NumPy数组作为参数,返回数组中的最小值。 9. numpy.mean():计算数组的平均值。可以传入一个NumPy数组作为参数,返回数组的平均值。 10. numpy.sum():计算数组中所有元素的和。可以传入一个NumPy数组作为参数,返回数组中所有元素的和。 11. numpy.reshape():改变数组的形状。可以传入一个表示新形状的元组作为参数,返回一个具有新形状的NumPy数组。 这些只是Python中NumPy库中常用函数的一部分,还有许多其他有用的函数可以用于数组和矩阵的操作。希望这些函数能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cloudcodes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值