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
廣告