Numpy 数组的首尾元素插入

Numpy 数组的首尾元素插入

在Numpy中,我们经常需要对数组进行操作,其中常见的操作之一就是在数组的首尾插入元素。这样的操作可以用来增加数组的长度,或者改变数组的形状。本篇文章将介绍如何在Numpy数组的首尾插入元素。

阅读更多:Numpy 教程

1. 在数组的开头插入元素

通过使用Numpy模块中的insert()函数,我们可以在数组的开头插入元素。insert()函数有三个参数:数组、插入位置、插入元素。

下面是一个例子,首先定义一个二维数组a,然后在第一维的位置0处插入一个元素:

import numpy as np

a = np.array([[1, 2], [3, 4], [5, 6]])
print("原数组为:\n", a)

b = np.insert(a, 0, [0, 0], axis=0)
print("插入后的数组为:\n", b)
Python

输出结果为:

原数组为:
 [[1 2]
  [3 4]
  [5 6]]
插入后的数组为:
 [[0 0]
  [1 2]
  [3 4]
  [5 6]]
Python

此时我们可以看到,数组b在位置0处插入了元素[0,0],并且数组的长度也增加了1。

我们也可以在第二维插入元素,只需要在insert()函数的第三个参数中指定插入的元素是一个一维数组即可:

c = np.insert(a, 0, [0, 0, 0], axis=1)
print("在第二维插入元素后的数组为:\n", c)
Python

输出结果为:

在第二维插入元素后的数组为:
 [[0 1 2]
  [0 3 4]
  [0 5 6]]
Python

此时我们可以看到,数组c在第二维的位置0处插入了元素[0,0,0],并且数组的形状也被改变了。

2. 在数组的末尾插入元素

与在数组开头插入元素不同,我们可以使用Numpy模块中的append()函数在数组的末尾插入元素。

下面是一个例子,首先定义一个一维数组a,然后在数组的末尾插入一个元素:

a = np.array([1, 2, 3])
print("原数组为:", a)

b = np.append(a, 4)
print("在末尾插入元素后的数组为:", b)
Python

输出结果为:

原数组为: [1 2 3]
在末尾插入元素后的数组为: [1 2 3 4]
Python

此时我们可以看到,数组b在末尾插入了一个元素4,并且数组长度也增加了1。

我们也可以在二维数组的末尾插入一行或一列:

c = np.array([[1, 2], [3, 4]])

d = np.append(c, [[5, 6]], axis=0)
print("在末尾插入一行后的数组为:\n", d)

e = np.append(c, [[5], [6]], axis=1)
print("在末尾插入一列后的数组为:\n", e)
Python

输出结果为:

在末尾插入一行后的数组为:
 [[1 2]
  [3 4]
  [5 6]]
在末尾插入一列后的数组为:
 [[1 2 5]
  [3 4 6]]
Python

此时我们可以看到,C数组在末尾插入了一行或一列后,形状也相应地改变了。在这个例子中,我们在二维数组的末尾插入了一行[5,6],形状变成了3行2列的数组;在另一个例子中,我们在二维数组的末尾插入了一列[5],[6],形状变成了2行3列的数组。

3. 删除Numpy数组的头尾元素

除了在头尾插入元素,有时我们也需要删除Numpy数组的头尾元素。Numpy模块中也提供了相应的函数,分别是delete()和trim_zeros()。

使用delete()函数时,我们需要指定要删除的数组、删除的位置、删除的轴:

a = np.array([[1,2,3], [4,5,6], [7,8,9]])
print("原数组为:\n", a)

b = np.delete(a, 0, axis=0)
print("删除第一行后的数组为:\n", b)

c = np.delete(a, 2, axis=1)
print("删除第三列后的数组为:\n", c)
Python

输出结果为:

原数组为:
 [[1 2 3]
  [4 5 6]
  [7 8 9]]
删除第一行后的数组为:
 [[4 5 6]
  [7 8 9]]
删除第三列后的数组为:
 [[1 2]
  [4 5]
  [7 8]]
Python

此时我们可以看到,通过delete()函数分别删除了数组a的第一行和第三列。

使用trim_zeros()函数时,我们只需要指定要删除的数组即可,该函数会自动删除数组头部和尾部的0元素:

a = np.array([0, 0, 1, 2, 3, 0, 0, 0])
print("原数组为:", a)

b = np.trim_zeros(a)
print("删除头尾0后的数组为:", b)
Python

输出结果为:

原数组为: [0 0 1 2 3 0 0 0]
删除头尾0后的数组为: [1 2 3]
Python

此时我们可以看到,trim_zeros()函数自动删除了数组a头部和尾部的0元素,得到了一个只包含非0元素的新数组。

总结

本篇文章介绍了在Numpy数组的头部和尾部插入元素,以及从Numpy数组的头部和尾部删除元素的方法。这些操作对于改变数组的大小和形状非常有帮助,大大提高了Numpy数组的可操作性和实用性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册