numpy用法3: numpy的索引

一维数组索引

数组[数组位置-1]

import numpy as np
A=np.arange(3,15)
print(A)
print(A[3])#一维数组索引第x+1个元素

多维数组索引

多维数组元素索引:

数组[行坐标-1][列坐标-1]
数组[行坐标-1,列坐标-1]

A1=np.arange(3,15).reshape((3,4))
print(A1)
print("=======================")
print(A1[0][3])#多维数组的索引行列后的为第x+1行第y+1列元素
print(A1[0,3])

结果:
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]

=======================
6
6

多维数组整行索引:

数组[行坐标-1]
数组[行坐标-1,:]

A1=np.arange(3,15).reshape((3,4))
print(A1)
print("=======================")
print(A1[2])#多维数组索引的第x+1行的结果
print(A1[2,:])#多维数组第x+1行所有数

结果:
[11 12 13 14]
[11 12 13 14]

多维数组整列索引:

数组[:,列坐标-1]

A1=np.arange(3,15).reshape((3,4))
print(A1)
print("=======================")
print(A1[:,1])#多维数组第y+1列所有数
print(A1[1,1:2])#多维数组第x+1行从y1+1到y2+1的所有数(左闭右开)
print(A1[1,1:3])

结果:
[ 4 8 12]

多维数组行或列某段的索引:

数组[开始行坐标-1:结束行坐标-1,列坐标-1]
数组[行坐标-1,开始列坐标-1:结束列坐标-1]

A1=np.arange(3,15).reshape((3,4))
print(A1)
print("=======================")
print(A1[1,1:2])#多维数组第x+1行从y1+1到y2+1的所有数(左闭右开)
print(A1[1,1:3])
print(A1[0:2,2])

结果:
[8]
[8 9]
[5 9]


遍历数组

以行遍历

for row in A1:#row是行
    print(row)

结果:
[3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]

以列遍历

利用矩阵的转置遍历每一列

for column in A1.T: #column列
    print(column)

结果:
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]
[ 6 10 14]

展开遍历每个元素

利用flatten()或reshape(-1)或ravel()把矩阵展开成一维数组再进行遍历

print(A1.flatten())#flatten()是把矩阵展平成一维数组
for item in A1.flat:#A.flat返回的是迭代器iterator
    print(item)
print("===========================")
for item1 in A1.flatten():
    print(item1)
print("===========================")
print(A1.reshape(-1))
for item2 in A1.reshape(-1):
    print(item2)
print("===========================")
print(A1.ravel())
for item3 in A1.ravel():
    print(item3)

结果:
[ 3 4 5 6 7 8 9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14

===========================
3
4
5
6
7
8
9
10
11
12
13
14

===========================
[ 3 4 5 6 7 8 9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14

===========================
[ 3 4 5 6 7 8 9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值