1-python-Numpy笔记

文章详细介绍了Numpy中访问数组元素的三种方式:符号索引,包括直接索引和递归索引;切片索引,用于访问连续或间断的数据段;以及花式索引,通过布尔数组选择满足特定条件的元素。文中强调了直接索引的性能优势,并给出了递归搜索的示例。同时,提到了负索引和切片的一些注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接着0-python-numpy说

一.Numpy的访问数组元素

(一).索引

1.符号索引

索引格式 更多样 可以是 np直接+列表 Eg: a[0,0] 结果上 等同 a[0][0]

当然两种访问方式自然是有区别的

对于a[0,0]      你是直接索引第 0 行第 0 列 返回结果

但对于 a[0][0]先返回 a[0]的索引结果构成一个 内部列表 或者 子数组,然后继续索引内部列表里面的 [0]

对比这两个的访问过程,不难看出,其实a[0][0]是蛮消耗性能

所以一般对于已确定 np.ndim 的np 推荐使用第一种

第二钟当 np.ndim 不确定时可以配合 try语句 递归索引数据

Eg:

def serch(arr):

    try:

        arr = arr[0]# 注意这一步,如果索引失败 直接退出不会赋值给arr所以最后返回的是 输入的arr,不是索引到的

        return serch(arr)#注意 这里用了递归 递归时要注意 函数 最终 返回的结果为第一次执行的返回

    except:

        return arr

但是从a[0][0]可得出我们可以用

a[0]  返回 (np.ndim - 1)维列表 的索引

2.切片索引

索引格式:

                M[lower:upper:step]

目的:访问一段连续 间断有序 的数据

注意 切片索引不能连续切片,

原因:对于np.ndim 维数据切片索引完后 维度数 不变

a[0:1] 返回 np.ndim 维列表的索引

如果直接赋值会把里面所有元素都赋为该值

给一个列表则该列表必须和索引内容的格式一样,否则报错

所以: a[0:2][0:2] 不可以访问到一个 二维数组  而是该数组的   下一维数组   的 前2个元素


补充:额外的索引 a[-1] 代表 倒数第一个元素,以此类推

           注意: 数组的大小,别超了


3.花式索引

一般用法:d = (m*2)<2 #其中(m*2)<2是d判断的条件 m为一个数组 //d会生成一个m 数组一样的数组,类型为bool的数组,值就为 该位置的值是否满足d判断的条件

                  print(m[d])   #将值为 True 的所有值返回 构成一个一维列表

目的:访问满足条件某些数据

还有一种方式来获取 上述d位置 indices = np.where(d)

若 m 为一个二维数组

为一个np.ndim维的列表    Eg:  indices[0]x,indices[1]y以此类推

分割线   --------------------------------------------------------------   此章完

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值