python numpy使用心得

1. 矩阵初始化

import numpy as np
#一维数组
a=np.array([])
#二维矩阵
b=np.array([[]])
#二维3*1矩阵
c=np.empty((3,1),float)
#二维1*3矩阵
d=np.empty((1,3),float)
#[0,3)区间上 步长为1等差数列 结果为[0 1 2]
e=np.arange(0,3,1)
#[0,3]区间上,等差取3个数 组成数列 结果为[0.  1.5 3. ]
f=np.linspace(0,3,3)

2. 查看矩阵行数、列数、或维度

#返回矩阵中所有元素的数量,如3*2矩阵返回数字6
np.size(c)
#返回矩阵某一维的维数,x=0表示底一维维数,x=1表示第二维维数
#对于3*1矩阵 ,np.size(c,0)=3  np.size(c,1)=1
np.size(c,x)
#返回整体的维度,np.shape(c)=(3,1)
np.shape(c)
#矩阵的维度可能分两种情况np.shape(c)可能返回(3,2)表示3*2矩阵,可能返回(3,)表示一维数组中有三个数
python中(2,3)(3,)虽然表示二维和一维数组,但是可以进行矩阵乘法,结果返回(2,)型数组

3. 矩阵拼接

#对于一维数组
#方法一:添加x,x为单个元素或其他一维数组  即np.shape()为(x,)形式。否则报错维度超限
a=np.append(a,x)
#方法二:np.concatenate((x,y),axis=0)
a=np.concatenate((a,test2),axis=0)
#对于二维数组np.shape()为(x,y)的形式
#形式一 从第一个轴方向拼接
a=np.concatenate((a,test2),axis=0)
#形式二 从第二个轴方向拼接
a=np.concatenate((a,test2),axis=1)
#例子
# 1*3
test2=np.array([[0,1,2]])
# 2*3
test3=np.array([[3,4,5],[6,7,8]])
test=np.concatenate((test2,test3),axis=0)
#结果
#[[0 1 2]
# [3 4 5]
# [6 7 8]]

4. 矩阵乘法

#方法一 线性代数中的矩阵乘法 
#a阵的第二维和b阵的第一维要相等,即np.size(a,1)=np.size(b,0).一维数组没有第二维,所以b阵不能是一维
#两个矩阵的np.shape() 即维度不能有空
c=np.dot(a,b)
#方法二  
#严重警告!!! 不是学术中熟悉的乘法,不建议使用
#严重警告!!! 不是学术中熟悉的乘法,不建议使用
#严重警告!!! 不是学术中熟悉的乘法,不建议使用
#这里b阵可以是一维的,测试显示默认会转为1*n行向量
c=a*b
#例子 
[[1 2] * [[1 2]  =[[1 4]
 [3 4]]   [3 4]]   [9 16]]
[[1 2] * [[1]  =[[1 2]
 [3 4]]   [2]]   [6 8]]
[[1 2] * [[1 2]]  =[[1 4]
 [3 4]]             [3 8]]
[[1] * [[1]  =[[1]
 [2]]   [2]]   [4]]
[[1] * [[1 2]]  =[[1 2]
 [2]]             [2 4]]
#不建议使用,自行体会吧
#不建议使用
#不建议使用

5. 矩阵转置

#把一维向量转化为二维向量
e=np.arange(0,3,1)#array([0, 1, 2])  np.shape(e)=(3,)
f=np.array([[1],[2]])#array([[1],
      			     #		 [2]])   np.shape(f)=(2,1)  
#方法一
g=e.reshape(1,-1)#array([[0, 1, 2]]) np.shape(g)=(3,1)
#方法二 这个方法还适用于三维的矩阵 (1,0)表示第一个维度和第二个维度互换,python中0表示第一个
h=f.transpose(1,0)#array([[ 1, 2]])  np.shape(h)=(1,2)

6. 均方误差 MSE

#定义一个函数 参数为矩阵
def mse(x):
    return np.sum(x ** 2) / np.size(x)
#矩阵中各元素的平方和
np.sum(x ** 2)

7. 求范数、求逆

#这个求出来应该是二范数
np.norm(a)
#这个求的是广义逆,即非方阵也可求逆
np.linalg.pinv(HL)
#A指待输入数组,reps则决定A重复的次数。
numpy.tile(A,reps)

转载:可以查看这个链接np.tile某博主解

8.选取部分矩阵

矩阵[0:2] 选取[0,2)行 左闭右开
矩阵[:,0:2] 选取[0,2)列 左闭右开
矩阵[0:2,1:3] 选取[0,2)[1,3)列
矩阵[:,1:1] 注意冒号左右数组相同,就变成了一维数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值