numpy_矩阵切片

和python列表一样,numpy库中array也有着可切片的特性,这大大方便了我们对矩阵的可操作性。

import numpy as np

a = np.arange(12)
a.shape = (3,4)   #同写法a = a.reshape(3,4)
print(a)

首先我们现创建一个3*4的矩阵,如下:

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

可通过a[x,y]选择第x+1行第y+1列的元素

print(a[2,3]) #选择矩阵第3行第4列
11

通过以下方法可对矩阵进行切割。

a[:,y]中“:”表示选择所有行,y表示选择第y+1列,a[:,1]表示选择矩阵a第2列的所有行,也就是[1 5 9];

a[1,:]表示选择矩阵a第2行的所有列,也就是[4 5 6 7]。

a[:,:2]表示选择矩阵a第1和第2列的所有行。

print(a[:,1])  #选择矩阵第二列 
print(a[1,:])  #选择矩阵第二行  
print(a[:,:2]) #选择矩阵第一和第二列
[1 5 9]
[4 5 6 7]
[[0 1]
 [4 5]
 [8 9]]

选择矩阵第2,3行和第2,3列

print(a[1:,1:3]) 
[[ 5  6]
 [ 9 10]]
print(a[:,[0,2]) #选择矩阵a的第1和第3列
[[0 2]
 [4 6]
 [8 10]]

用ravel()方法可将矩阵按行展开

print(a.ravel())#将矩阵转换成列表
[ 0  1  2  3  4  5  6  7  8  9 10 11]

方法np.where(condition,x1,x2),矩阵元素满足condition则选择用x1替换,否则用x2替换

y = np.array(['one','zreo','one'])
y = np.where(y == 'one',1,0) #满足条件选1,不满足选0
print(y)
[1 0 1]

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 572108581@qq.com

文章标题:numpy_矩阵切片

文章字数:393

本文作者:ZSH

发布时间:2019-10-03, 15:55:37

最后更新:2019-10-06, 20:40:21

原始链接:https://zhongshanhao.github.io/2019/10/03/numpy-array/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录