NumPy基础之一维数组获取和修改元素

1 NumPy基础之一维数组获取和修改元素

NumPy数组选取数据子集或单个元素的方式有很多,如果是一维数组,和python列表类似。

1.1 一维数组获取元素

描述

通过索引获取数组元素,一维数组索引下标从0开始,[m]表示索引为m的元素。

[m:n]切片,包头不包尾,获取一维数组索引从m到n的元素,包括m不包括n,返回array对象。[:]获取数组全部元素。

示例

>>> import numpy as np
>>> ar1=np.arange(10,20)
>>> ar1
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
# 通过索引获取数组元素
# 一维数组索引下标从0开始
>>> ar1[0]
10
# [m]获取索引为m的元素
>>> ar1[3]
13
# [m:n]切片,获取一维数组索引从m到n的元素
# 包括m不包括n,包头不包尾,返回array对象
>>> ar1[5:8]
array([15, 16, 17])
# [:]获取数组全部元素
>>> ar1[:]
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])

1.2 一维数组修改元素

描述

[m]=x修改一维数组索引为m的元素值为x。

[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]
13
# [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])

你可能感兴趣的:(python,numpy,python)