numpy索引说明

官方文档,汉化之源
用到啥翻译啥,随缘更

numpy中可支持三种索引方式 field access, basic slicing, advanced indexing
我以我六级424的水平翻译以下就是:区域访问,基本操作,花里胡哨

Basic Slicing and Indexing

基本操作仅限于索引内容为 slice对象 单个整数 整数和slice的元组

slice对象就是长这样的(stat:stop:step)
例如: A[(::2)]
具体见下 懒得翻译了
在这里插入图片描述
但是注意slice索引方式得到的切片是原数据的一个视图

An array that does not own its data, but refers to another array’s data instead.
视图自身没有数据,但它指向其他数组的数据
所以当你修改所指向数组的数据的时候,视图的数据也会随之改变

以下是几种常用切片方式

  • 基本的slice形式就是star:stop:step 取出的star与stop之间步长为step的等差序列
  • Example
    >>> x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    >>> x[1:7:2]
    array([1, 3, 5])
  • slice支持负数,表示从尾到首的倒序遍历
  • Example
    >>> x[-3:3:-1]
    array([7, 6, 5, 4])
  • star没有指定时,参考step的正负,为正star=0,为负star=n-1
    stop没有指定时,参考step正负,为正stop=n,为负stop=-n-1
    :和::意义相同,都表示选取当前轴所有元素
  • Example
    >>> x[5:] array([5, 6, 7, 8, 9])

Advanced Indexing

这里有两种高级索引:整数 布尔

注意高级索引返回的是原数据的copy,不再是视图

Integer array indexing

整数数组的高级索引就是拿坐标做索引,然后这个整数数组就是哪个坐标
这个今天不用不翻了

Boolean array indexing

当索引为布尔数组时对应的骚操作。这类索引等效于x[obj.nonzero()],就是把索引obj中所有不为0的元素位置挑出来构成一个索引

举个栗子

    A = np.array(np.random.rand(5))
    A[A > 0.5] = 1

A > 0.5会先返回一个布尔数组,根据这个布尔数组True的位置生成索引

befor: [ 0.98888704  0.03145936  0.51336152  0.45780306  0.84787507]
after: [ 1.          0.03145936  1.          0.45780306  1.        ]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值