numpy矩阵索引

numpy索引
本文是课程笔记,课程来源:【莫烦Python】Numpy & Pandas (数据处理教程)

import numpy as np

# 此部分为numpy索引
# 本节示例重点是二维矩阵

array = np.arange(3, 15)
array2d = np.arange(3, 15).reshape(3, 4)
# 通过下标获取对象,注意这里是对象,array可能存放着更高维度的矩阵,例如n维矩阵,我们是将所有的n-1维的矩阵封装在一起才实现的(n-1)+1的升维
# 那么index访问的是封装的n维矩阵的第index个n-1维矩阵
print(array[2])
print(array2d[2])
# 如果还未到0维度,则可以继续访问
print(array2d[2][2])
# 当也可以这样访问,和上面一样的
print(array2d[2, 2])

# 根据行列访问数组
# 访问index行的所有数
print('2行=', array2d[2, :])
# 访问index列的所有数
print('2列=', array2d[:, 2])

# 限定范围访问
# 访问index行的下标为0到2的数
print('2行=', array2d[2, 0:2])
# 访问index列的下标为0到2的数
print('2列=', array2d[0:2, 2])

# 迭代器访问
# 访问每一行
for row in array2d:
    print(row)
    for val in row:
        print(val)
# 访问每一列,由于py并没有提供列迭代器,因此需要转置矩阵
for col in array2d.T:
    print(col)
# 访问每一个元素
# 很遗憾py只提供迭代器的for循环访问,想要访问每一个元素,要么如上:
for row in array2d:
    for val in row:
        print(val)
# 但通常是如下:
for val in array2d.flat:
    print(val)
# flat是将array转化成0到array.size-1的迭代器,flatten()相当于访问flat迭代后的指针:*Object
print(array2d.flatten())

猜你喜欢

转载自blog.csdn.net/Elm_Forest/article/details/124543124