numpy的索引-【老鱼学numpy】

简单的索引值

import numpy as np
a = np.arange(3, 15).reshape(3, 4)
print("a=")
print(a)

print("第2行的数据:", a[2])
print("第2行第3列的数据:", a[2][3])

输出为:

a=
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
第2行的数据: [11 12 13 14]
第2行第3列的数据: 14

对于获取第2行第3列的数据,我们还可以用如下的方式来获取:

print("第2行第3列的数据:", a[2, 3])

数据切片

用冒号索引可以对数据进行切片。

import numpy as np
a = np.arange(3, 15).reshape(3, 4)
print("a=")
print(a)

print("第2行所有数:", a[2, :])

输出为:

a=
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
第2行所有数: [11 12 13 14]

上面用冒号来对数据选择进行了占位。

如果我们想要获得第1列的所有数:

import numpy as np
a = np.arange(3, 15).reshape(3, 4)
print("a=")
print(a)

print("第1列所有数:", a[:, 1])

输出为第1列的所有数:

a=
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
第1列所有数: [ 4  8 12]

获取第1行从第2列到第4列的值:

import numpy as np
a = np.arange(3, 15).reshape(3, 4)
print("a=")
print(a)

print("第1行从第2列到第4列的值:", a[1, 2:4])

输出为:

a=
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
第1行从第1列到第2列的值: [ 9 10]

把数据变平

把数据变平的意思是:如果是多维数组,则把数组中的每个元素平铺开来,变成一维数据,这样便于用索引值进行访问。
例如:

import numpy as np
a = np.arange(3, 15).reshape(3, 4)
print("a=")
print(a)
print("flatten=", a.flatten())

输出:

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

也可以用a.flat返回一个迭代器来变量其中的元素:

import numpy as np
a = np.arange(3, 15).reshape(3, 4)
print("a=")
print(a)

for v in a.flat:
    print(v, end=',')

输出为:

a=
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
3,4,5,6,7,8,9,10,11,12,13,14,
posted @ 2017-11-15 08:29  dreampursuer  阅读(337)  评论(0编辑  收藏  举报