NumPy insert() 函数



Numpy 的insert()函数用于沿数组的指定轴插入值。它以数组、索引或索引序列以及要插入的值作为其主要参数。

axis 参数指定要插入值的轴。如果未指定 axis,则在插入之前会先展平数组。

此函数通过保持原始数组不变来返回一个包含插入值的新的数组。

语法

以下是 Numpy insert() 函数的语法:

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

参数

以下是 Numpy insert() 函数的参数:

  • arr: 输入数组。
  • obj: 要插入之前的位置的索引。
  • values: 要插入的值的数组。
  • axis: 要插入的轴。如果未给出,则输入数组将被展平。

示例 1

以下是 Numpy insert() 函数的基本示例,其中未传递 axis 参数,因此将生成展平的数组:

import numpy as np

# Define the initial array
a = np.array([[1, 2], [3, 4], [5, 6]])

print('First array:')
print(a)
print('\n')

# Insert without axis parameter (flattening the array)
print('Axis parameter not passed. The input array is flattened before insertion.')
print(np.insert(a, 3, [11, 12]))
print('\n')

输出

First array:
[[1 2]
 [3 4]
 [5 6]]


Axis parameter not passed. The input array is flattened before insertion.
[ 1  2  3 11 12  4  5  6]

示例 2

在此示例中,我们将 axis 参数传递给insert()函数并进行广播以匹配输入数组:

import numpy as np

# Define the initial array
b = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) 

print('First array:')
print(b)
print('\n')

print('Axis parameter passed. The values array is broadcast to match input array.')

# Insert with axis parameter (broadcasting the values)
# Broadcast along axis 0 (inserting rows)
print('Broadcast along axis 0:')
print(np.insert(b, 1, [11, 12], axis=0))
print('\n')

# Broadcast along axis 1 (inserting columns)
print('Broadcast along axis 1:')
print(np.insert(b, 1, 11, axis=1))

输出

First array:
[[1 2]
 [3 4]
 [5 6]
 [7 8]]


Axis parameter passed. The values array is broadcast to match input array.
Broadcast along axis 0:
[[ 1  2]
 [11 12]
 [ 3  4]
 [ 5  6]
 [ 7  8]]


Broadcast along axis 1:
[[ 1 11  2]
 [ 3 11  4]
 [ 5 11  6]
 [ 7 11  8]]
numpy_array_manipulation.htm
广告