Python数据分析学习笔记-numpy库学习2

numpy库

1 reshape

用于修改维度
已有一个一维矩阵nparr=[0 1 2 3 4 5 6 7 8 9],将其转换为2行5列的二维矩阵

arr9 = nparr.reshape(2,5)
print(arr9)

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

或转换为两行均等元素的矩阵

arr9 = nparr.reshape(2,-1)

多层连用

x = np.arange(15).reshape(-1,5)
print(x)

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

2取值操作

x1= x[1][3]
print(x1)

8

以上取法不推荐,多维矩阵切片会出现错误

x2=x[1,3]
print(x2)

8

切片

一维矩阵切片

p=np.arange(10)
p1=p[0:3] #0-2切片
print(p)
print(p1)

p1=p[:3] #0-2切片

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

p1=p[3:]  #3-最后切片
print(p)

[3 4 5 6 7 8 9]

p1=p[:8:2]  #0-7切片,步径为2
print(p1)

[0 2 4 6]

p1=p[::2] 
print(p1)

[0 2 4 6 8]

二维矩阵切片

x=[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]

取前2行前3列

p3=x[0:2,0:3]
print(p3)

p3=x[:2,:3]
print(p3)

[[0 1 2]
[5 6 7]]

反置矩阵

p4=x[::-1,::-1]
print(p4)

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

行列转置

p5=x.T
print(p5)

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

上一篇:【BZOJ5417】[NOI2018]你的名字(线段树,后缀自动机)


下一篇:[Codeforces 204E] Little Elephant and Strings