版权声明:本文为博主原创文章,转载请注明出处! 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