python的常见矩阵除法_numpy常用矩阵运算方法【转】

目录:

对于python中的numpy模块,一般用其提供的ndarray对象。

创建一个ndarray对象很简单,只要将一个list作为参数即可。

例如

import numpy as np #引入numpy库

#创建一维的narray对象

a = np.array([1,2,3,4,5])

#创建二维的narray对象

a2 = np.array([[1,2,3,4,5],[6,7,8,9,10]])

#创建多维对象以其类推

获取矩阵行数列数(二维情况)

习惯了采用matlab进行数模的编程,要对矩阵进行遍历时,一般先获取矩阵的行数和列数。要获取narray对象的各维的长度,可以通过narray对象的shape属性

import numpy as np

a = np.array([[1,2,3,4,5],[6,7,8,9,10]])

print(a.shape) #结果返回一个tuple元组 (2L, 5L)

print(a.shape[0]) #获得行数,返回 2

print(a.shape[1]) #获得列数,返回 5

矩阵的截取

按行列截取

矩阵的截取和list相同,可以通过[](方括号)来截取

import numpy as np

a = np.array([[1,2,3,4,5],[6,7,8,9,10]])

print(a[0:1]) #截取第一行,返回 [[1 2 3 4 5]]

print(a[1,2:5]) #截取第二行,第三、四列,返回 [8 9]

print(a[1,:]) #截取第二行,返回 [ 6 7 8 9 10]

按条件截取

按条件截取其实是在[](方括号)中传入自身的布尔语句

例如

import numpy as np

a = np.array([[1,2,3,4,5],[6,7,8,9,10]])

b = a[a>6] # 截取矩阵a中大于6的元素,范围的是一维数组

print(b) # 返回 [ 7 8 9 10]

# 其实布尔语句首先生成一个布尔矩阵,将布尔矩阵传入[](方括号)实现截取

print(a>6)

# 返回

[[False False False False False]

[False True True True True]]

按条件截取应用较多的是对矩阵中满足一定条件的元素变成特定的值。

例如将矩阵中大于6的元素变成0。

import numpy as np

a = np.array([[1,2,3,4,5],[6,7,8,9,10]])

print(a)

#开始矩阵为

[[ 1 2 3 4 5]

[ 6 7 8 9 10]]

a[a>6] = 0

print(a)

#大于6清零后矩阵为

[[1 2 3 4 5]

[6 0 0 0 0]]

矩阵的合并

矩阵的合并可以通过numpy中的hstack方法和vstack方法实现

import numpy as np

a1 = np.array([[1,2],[3,4]])

a2 = np.array([[5,6],[7,8]])

#!注意 参数传入时要以列表list或元组tuple的形式传入

print(np.hstack([a1,a2]))

#横向合并,返回结果如下

[[1 2 5 6]

[3 4 7 8]]

print(np.vstack((a1,a2)))

#纵向合并,返回结果如下

[[1 2]

[3 4]

[5 6]

[7 8]]

矩阵的合并也可以通过concatenatef方法。

np.concatenate( (a1,a2), axis=0 )  等价于  np.

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值