Numpy中双冒号切片含义及二维数组赋值代码功能解读
关于Numpy中双冒号(::)切片及二维数组赋值代码的解释
双冒号(::)的含义
在Numpy的切片语法里,::是完整切片格式start:stop:step的简化写法,每个位置的参数省略时会使用默认值:
- 省略
start:默认从序列的起始位置(索引0)开始选取 - 省略
stop:默认选取到序列的末尾位置 - 省略
step:默认步长为1
举个简单例子:
arr[::2]:选取数组中所有索引为偶数的元素arr[1::2]:选取数组中所有索引为奇数的元素arr[3::]:从索引3开始选取到数组末尾的所有元素
二维数组代码的功能
当my_array是二维数组时,Numpy用[行切片, 列切片]的格式来定位元素,两行代码的功能如下:
my_array[:, 0::2] = np.sin(A):表示选中所有行0::2表示选中从第0列开始、步长为2的所有列(即所有偶数列:第0、2、4...列)- 将这些选中区域的元素,赋值为数组
A中对应元素的正弦值(要求A的形状必须和选中区域的形状完全匹配)
my_array[:, 1::2] = np.cos(B):同样选中所有行1::2表示选中从第1列开始、步长为2的所有列(即所有奇数列:第1、3、5...列)- 将这些选中区域的元素,赋值为数组
B中对应元素的余弦值(要求B的形状必须和选中区域的形状完全匹配)
内容的提问来源于stack exchange,提问作者marlon
相关产品推荐
相关产品推荐

