![](https://csdnimg.cn/release/download_crawler_static/10655733/bg1.jpg)
这里面的等号前面的变量符号都是自己随意定义的(max_in_all等),重要的是等号后面的函数使用格式,a表示矩阵
每行和每列的相关计算返回的都是一个一维向量,最小值把max换成min就行了,求平均值换成mean
最小值就是np.argmin()函数
numpy之向量、矩阵
创建:
包导入
import numpy as np #np是自己定义的
一维向量: v = np.array([1, 2, 3, 4]):v是创建的一维向量
二维矩阵: m = np.array([[1, 2],[3, 4]]):m是创建的二维向量
维度查看:
a=v.shape():a为v的维度(a为元组形式)
矩阵的转换:
a=v.reshape(m,n):将v转换为m行n列的矩阵存入a中,注意元素个数不能改变
a=v.reshape(-1,n) a=v.reshape(m,-1):将v转换为n列或者m行的矩阵(列数和行数自适应)
取元素
简单取
随机数矩阵的生成:
data = np.random.uniform(a1, a2, size = (m, n))
生成一个m行n列的矩阵其中的元素为(a1,a2)范围内的随机数
a=data[m, n]:取出第m+1行n+1列的元素赋值给a
切片取
row_0 = data[0, : n]:取出第一行0到n个元素赋给row_0:冒号n:m可以理解为n到m,n的缺省值为0,m的缺省值为最大合法值
如:col_0 = data[:, 0] :取出第一列元素,等同于:col_0 = data[0:maxrow , 0]
reshape
取出一行、一列得到的值是一个一维的array,如果想让其保持原来的维度,就要用到reshape 函数
row_0=row_0.reshape #注意没有括号
矩阵运算
加减法同维度的直接相加减:c=a+b
矩阵乘法
前列数等于后行数的矩阵可以进行乘法运算:c=np.dot(a,b)
注意:c=a*b是将矩阵a,b中的对应元素相乘,不是矩阵乘法
矩阵转置a1=a.T:a1是a的转置
哈达玛积(Hadamard product)c = a * b:两个维度相同的矩阵对应元素相乘
求和、最大值
sum_all=a.sum或sum_all=np.sum(a):求矩阵a中所有元素和赋给sun_all 所有元素之和
各列元素之和
各行元素之和
sum_col=a.sum(axis = 0) 或者:sum_col=np.sum(a, axis=0)
sum_row=a.sum(axis = 1) 或者:sum_row=np.sum(a, axis=1)
求所有元素最大值
求每行的最大值
求每列的最大值
max_in_all=a.max()
max_in_row=a.max(axis = 1)
max_in_col=a.max(axis = 0 )
其他操作
标准差
e的次方(指数运算)
对数
a的标准差c=a.std()
c=np.exp(a)
c=np.logn
(a):以n为底的对数,n不写时默认以e为底
取出向量最大最小值坐标
所有元素中最大值下标
每行元素中的最大值下标(返回一维向量)
每列元素中的最大值下标(返回一维向量)
c=np.argmax(a)
c=np.argmax(a, axis = 1)
c = np.argmax(a, axis = 0)
广播
当维数不同的向量进行*运算时,会将较小的向量复制到与其相同维数并进行运算
例:a为1行3列的矩阵,b为3乘3矩阵,则a*b是将a复制两份成为3*3的矩阵再进行运算