numpy向量转换为矩阵_Numpy中使用矩阵

这篇博客介绍了Numpy库在Python中的矩阵操作,包括定义矩阵、大小转换、基本运算、特殊函数、矩阵成员访问及矩阵合并。还强调了Numpy与MATLAB在矩阵转换上的差异,并提供了代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy是Python中的一个矩阵计算包,功能类似于MATLAB的矩阵计算。

安装Pythonxy时已经包含了numpy包及其依赖包。

(1) 定义矩阵

>>> from numpy import *

>>> a = array([[1,2.2,3],[4,5,6]])

>>> a.ndim

2

>>> a.shape

(2,3)

>>> a.size

6

>>> type(a)

>>>a.dtype

dtype(‘float64‘)

(2) 矩阵大小转换(reshape)

>>>a.reshape(6,1)  -- 将3x2矩阵变成列向量(6x1),需要注意的是,这里与MATLAB不一样,MATLAB变换是按列向量来的,而NUMPY是基于行向量

所以numpy的运行结果为:1 4 2.2 5 3 6 (列向量)

而MATLAB的运行结果为 :  1 2.2 3 4 5 6 (列向量)

注意: 对应的MATLAB很多向量默认为列向量,numpy中默认为行向量

(3)矩阵基本运算

+ , - , *(元素乘法), dot(矩阵乘法), *= , += , -= , **(元素乘方),, ...sin,exp, ...

注意:与MATLAB不同,MATLAB中*是矩阵乘法,.*是元素乘法;

(4)特殊的函数

ones([...]): 全一的矩阵, 如ones([3,4])会产生全1的3x4阶矩阵;

zeros([....]): 全0的矩阵;

linspace(start, end, num): 如linspace(0,1,11)结果为[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];

arange(n): 产生一个从0到n-1的向量,如arange(4)结果为[0,1,2,3]

random.random([...]): 产生随机矩阵,如random.random([2,3])产生一个2x3维的随机数

(5)矩阵成员

a.max(): 返回矩阵的最大值

a.min(): 返回矩阵最小值

a.sum(): 求和

a.mean(): 求均值

a.max(axis): 0-按列求值,返回一行, 1-按行求值,返回一列

a.transpose(): 转置

(6) 矩阵访问:

对于一维矩阵,a[0]表示a向量的第1个元素;

对于二维矩阵,a[0,0]表示a的第1个元素,a[0,:]表示a的第一行向量,a[:,0]表示第一列向量

矩阵或向量运算,应该采用numpy和scipy,做法是:

1

2

3

import math

import numpy as np

import scipy as sp

然后就可以进行运算了,比如加法、除以一个数:

1

2

3

npdata=np.array(data)

data_sum=np.add(npdata,npdata)

data_frac=np.true_divide(npdata,2)

也可以按列合并矩阵(要求两矩阵行数一样):

new_matrix=np.hstack([mat1,mat2])

或按行合并矩阵(要求两矩阵列数一样):

new_matrix=np.vstack([mat1,mat2])

合并矩阵的命令同样可以用于合并向量,但是合并向量的时候有时会提示行列数不对,那可能是因为一个的维度是(n个),而另一个的维度是(n列,1行),这种情况下,可用reshape来进行转换:

1

2

array2=array2.reshape(n)

new_array=np.hstack([array1,array2])

查看矩阵或向量维度的办法是:

xxx.shape

对于一个矩阵,若按其第一列元素大小顺序来对整个矩阵进行行排序,则执行:

mat1=mat1[mat1[:,0].argsort()]

在屏幕上输出数组:

print mat1

保存一个矩阵到文件:

np.savetxt(输出文件名,矩阵名)

from:

ref:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值