Python数据处理之(六)numpy索引

版权声明:本文为博主原创文章,转载请注明出处! https://blog.csdn.net/PoGeN1/article/details/84289745

一、一维索引

在元素列表或者数组中,我们可以用如同a[2]一样的索引方法,同样的,在Numpy中也有相对应的表示方法。

>>> import numpy as np
>>> A=np.arange(3,15)
>>> print(A)
[ 3  4  5  6  7  8  9 10 11 12 13 14]
>>> print(A[3])
6

让我们将矩阵转换为二维的,此时进行同样的操作:

>>> 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]

可以看出,A[2]对应的是矩阵A的第行(因为索引是从0开始的)

二、二维索引

二维矩阵中想要具体的单个元素(A[行][列]):

>>> 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][1])
12

也可以采用下面这种形式(A[行,列]):

>>> print(A[2,1])
12

在Python的 list 中,我们可以利用:对一定范围内的元素进行切片操作,在Numpy中我们依然可以给出相应的方法:

>>> print(A[2][0:2])
[11 12]
>>> print(A[2,0:2])
[11 12]

对第3行中第0到第```列元素进行切片输出(不包含第2列)。
我们适当的利用for函数进行打印:

>>> A=np.arange(3,15).reshape((3,4))
>>> print(A)
[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
>>> for i in A:
	print(i)

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

上边是按行输出,如果想按列输出,就对A进行转置操作:A.T

>>> for i in A.T:
	print(i)

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

最后依然说一些关于迭代输出的问题,这一脚本中的flatten是一个展开性质的函数,将多维的矩阵进行展开成1行的数列。而flat是一个迭代器,本身是一个object属性。

>>> 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.flatten)
<built-in method flatten of numpy.ndarray object at 0x0000018569A42C60>
>>> print(A.flatten())
[ 3  4  5  6  7  8  9 10 11 12 13 14]
>>> for i in A.flat:
	print(i)

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

猜你喜欢

转载自blog.csdn.net/PoGeN1/article/details/84289745