Numpy数组操作之元素添加、删除和修改怎么实现

其他教程   发布日期:2024年04月26日   浏览次数:300

这篇文章主要介绍“Numpy数组操作之元素添加、删除和修改怎么实现”,在日常操作中,相信很多人在Numpy数组操作之元素添加、删除和修改怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Numpy数组操作之元素添加、删除和修改怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

数组元素添加、删除和修改

添加元素

numpy.append()

方法 说明
numpy.append() 数组追加元素
numpy.insert() 数组插入元素

在数组末尾追加元素。

  1. numpy.append(arr, values, axis=None)

参数说明:

  • arr:接收array_like,需要添加元素的数组。

  • values:接收array_like,追加到末尾的元素,形状必须匹配。arr和values的维度必须相等才能追加

  • axis:接收int,如果未给定轴,则arr和values在使用前都会被展平。

返回值:

  • ndarray,arr的副本。

示例:

  1. # 创建数组a
  2. >>> a = np.arange(1,7).reshape(2,3)
  3. >>> a
  4. array([[1, 2, 3],
  5. [4, 5, 6]])
  6. # 创建数组b
  7. >>> b = np.arange(7,10).reshape(1,3) # a,b维度相同才能追加
  8. >>> b
  9. array([[7, 8, 9]])

注意:数组(arr)和追加值(values)的维度必须相同才可以追击,否则会报错:

ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)

不指定轴向时,生成副本,将数组a,b都展平后进行追加。

  1. # 将数组b追加到数组a后
  2. >>> np.append(a, values=b) # 不指定axis时
  3. array([ 1, 2, 3, 4, 5, 6, 7, 8, 9])

指定轴向时,根据轴向追加,但是形状必须匹配,指定轴向为行追加时列数必须相等,指定轴向为列追加时,行数必须相等。

  1. >>> np.append(a, values=b, axis=0) # 根据行追加
  2. array([[ 1, 2, 3],
  3. [ 4, 5, 6],
  4. [ 7, 8, 9]])

指定轴向时,指定轴向为列时,行数不相同,形状不匹配,无法追加,会报ValueError错!

>>> np.append(a, values=b, axis=1)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1

numpy.insert()

给定的轴向和指定的索引位置插入值。

  1. numpy.insert(arr, obj, values, axis=None)

参数说明:

  • arr:接收array_like,输入的数组。

  • obj:接收整数或者整数序列,索引位置。

  • values:接收array_like,需要插入数组的值,需要考虑形状。

  • axis:接收整数,轴向。如果未给定轴向数组会被展平。

返回值:

  • ndarray,插入值后的副本。

示例:

  1. >>> a = np.arange(1,7).reshape(2,3)
  2. >>> a
  3. array([[1, 2, 3],
  4. [4, 5, 6]])
  5. >>> b = np.ones(shape=(2,1))
  6. >>> b
  7. array([[1.],
  8. [1.]])
  9. # 向数组a的行方向,索引为2的行插入数组b,会自动补全
  10. >>> np.insert(a, 2, b, axis=0)
  11. array([[1, 2, 3],
  12. [4, 5, 6],
  13. [1, 1, 1],
  14. [1, 1, 1]])
  15. # 向数组a的列方向,索引为2的列插入数组b
  16. >>> np.insert(a, 2, b, axis=1)
  17. array([[1, 2, 1, 1, 3],
  18. [4, 5, 1, 1, 6]])

删除元素

方法 说明
numpy.delete() 删掉某个轴的子数组,并返回删除后的新数组

numpy.delete()

返回一个沿轴删除了子数组的新数组。

  1. numpy.delete(arr, obj, axis=None)

参数说明:

  • arr:接收array_like,输入数组。

  • obj:接收索引、切片,或者整数构成的数组。

  • axis:接收整数,轴向

返回值:

  • ndarray,删除元素后的数组,是副本。

示例:

  1. >>> a = np.arange(1,7).reshape(2,3)
  2. >>> a
  3. array([[1, 2, 3],
  4. [4, 5, 6]])
  5. # 轴向为列,删除索引为2的列
  6. >>> np.delete(a, 2, axis=1)
  7. array([[1, 2],
  8. [4, 5]])

对数据进行操作时形状非常重要,如果形状不匹配会引发报错,需要对报错的类型了解,才能在出问题后及时找到原因。除此以外,轴向也是非常重要的,二维数组中:axis=0表示行,axis=1表示列,这个概念非常容易混淆。

元素修改

使用索引切片获取到该位置的元素后使用"="为该位置重新赋值即可。

语法:数组名[索引]=值 或 数组名[切片]=值

示例:

  1. >>> a = np.arange(1,7).reshape(2,3)
  2. >>> a
  3. array([[1, 2, 3],
  4. [4, 5, 6]])
  5. # 使用索引获取到该位置后重新赋值即可修改元素
  6. >>> a[0, 1] = 100
  7. >>> a
  8. array([[ 1, 100, 3],
  9. [ 4, 5, 6]])

以上就是Numpy数组操作之元素添加、删除和修改怎么实现的详细内容,更多关于Numpy数组操作之元素添加、删除和修改怎么实现的资料请关注九品源码其它相关文章!