知行编程网知行编程网  2022-11-09 10:00 知行编程网 隐藏边栏  2 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中numpy如何索引的相关知识,包括numpy中的cumsum,以及numpy中的array这些编程知识,希望对大家有参考作用。

上一篇讲完numpy的切片问题,今天就给大家带来numpy索引问题的详细分析。

我们都知道,要使用 numpy 来存储和处理大型矩阵,我们必须学会使用矩阵的表示。如何对矩阵中的对应元素进行索引等。在此之前,我们学习了线性代数中矩阵的表示,a[2][3]表示第三行第四列的​​元素。好吧,在 numpy 中也是如此。



一维索引

<p><span>import numpy as np
A = np.arange(3,15)
# array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
         
print(A[3])    # 6<br/></span></p>
<p><span>A = np.arange(3,15).reshape((3,4))
"""
array([[ 3,  4,  5,  6]
       [ 7,  8,  9, 10]
       [11, 12, 13, 14]])
"""
         
print(A[2])         
# [11 12 13 14]<br/></span></p>

A[2] 对应于矩阵 A 中第三行(从 0 开始的第一行)的所有元素。



二维索引

当我们需要表示特定元素时,我们需要使用二维索引。仍然使用上面的例子。

<p><span>print(A[1][1])      # 8
print(A[1,1])       # 8<br/></span></p>


对一定范围内的元素进行切片操作:

<p><span>print(A[1, 1:3])    # [8 9]
 
for row in A:        # 对行操作
    print(row)
"""    
[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]
"""
for column in A.T:        # 对列操作
    print(column)
"""  
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]
"""<br/></span></p>

注:上述表达方式A.T是将A转置,然后将得到的矩阵逐行输出,得到原始矩阵的逐列输出。



关于迭代输出的问题

<p><span>import numpy as np
A = np.arange(3,15).reshape((3,4))
         
print(A.flatten())   
# [ 3  4  5  6  7  8  9 10 11 12 13 14]
 
for item in A.flat:
    print(item)
# 3
# 4
……
# 14<br/></span></p>

此脚本中的 Flatten 是一个扩展函数,可将多维矩阵扩展为 1 行数组。而 flat 是一个迭代器,它本身就是一个对象属性。


Numpy的切片和索引方法都在这里共享。更多Python学习推荐:



本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享