Numpy的索引
2019-07-19 本文已影响0人
李小夭
在array中根据行数、列数或第几个的位置找到对应的值,根据位置信息进行运算处理。
一维数组
import numpy as np
A = np.arange(3,15)
print(A)
print(A[3]) # 第三个值
[ 3 4 5 6 7 8 9 10 11 12 13 14]
6
二维数组
import numpy as np
A = np.arange(3,15).reshape((3,4))
print(A)
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]
# 第二行
print(A[2])
[11 12 13 14]
# 某个值
print(A[2][1])
print(A[2,1])
12
12
# 用:代替某行或某列的所有数
print(A[2,:]) # 第2行的所有数
print(A[:,1]) # 第1列的所有数
print(A[1,1:3]) # 第1行、第1-2列的所有数
[11 12 13 14]
[ 4 8 12]
[8 9]
使用for循环读取数据
※ 迭代每一行
for row in A:
print(row)
[3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]
※ 迭代每一列
- 行列转置
- 迭代转置后的每一行即原array的每一列
print(A)
print(A.T)
for column in A.T:
print(column)
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]
[[ 3 7 11]
[ 4 8 12]
[ 5 9 13]
[ 6 10 14]]
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]
[ 6 10 14]
※ 迭代每一个元素
用flat把array转变成一行的序列
print(A.flat)
print(A.flatten())
for item in A.flat:
print(item)
<numpy.flatiter object at 0x7f8de203ca00>
[ 3 4 5 6 7 8 9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14