有很多方法可以获取数据子集或 numpy 数组的单个元素,如果它是一维数组,则类似于 Python 列表。
描述:
数组元素通过索引获取,一维数组索引下标从 0 开始,[m] 表示索引为 m 的元素。
m:n] 切片,标头不包络尾部,获取具有从 m 到 n 的一维数组索引的元素,包括 m 不包括 n,并返回一个数组对象。[:获取数组的所有元素。
例
>>import numpy as np描述:m]=x:将一维数组中索引为 m 的元素的值修改为 x。>ar1=np.arange(10,20)
>ar1
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
通过索引获取数组元素。
一维数组索引下标从 0 开始。
>ar1[0]
[m] 获取索引为 m 的元素。
>ar1[3]
[m:n] 切片以获取从 m 到 n 的一维数组索引的元素。
包括 m 但不包括 n,envelope 标头不包络,并返回一个数组对象。
>ar1[5:8]
array([15, 16, 17])
[:获取数组的所有元素。
>ar1[:]
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
m:n]=x 切片赋值,将 x 赋值到整个切片,不包括 n。 [:=x修改所有元素的值。
标量 x 被分配给切片 [m:n],x 自动传播到整个切片选择,即广播。
ar2=ar1[m:n],ar2[i]=x,修改切片值会同步修改原数组的值,即修改ar2元素会同步修改ar1元素。
例
>>import numpy as np>ar1=np.arange(10,20)
>ar1
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
m]=x:将一维数组中索引为 m 的元素的值修改为 x。
>ar1[3]
m:n]=x 切片赋值,将 x 赋值到整个切片,不包括 n。
>ar1[5:8]=29
>ar1
array([10, 11, 12, 13, 14, 29, 29, 29, 18, 19])
[:=x修改所有元素的值。
>ar1[:]=6
>ar1
array([6, 6, 6, 6, 6, 6, 6, 6, 6, 6])
>ar1=np.arange(10,20)
>ar1
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
# ar2=ar1[m:n]
>s1=ar1[5:8]
>s1
array([15, 16, 17])
ar2[i]=x,如果修改切片的值,则原始数组的值将同步修改。
>s1[0]=9555
>s1
array([9555, 16, 17])
>ar1
array([ 10, 11, 12, 13, 14, 9555, 16, 17, 18, 19])