NumPy broadcast_to() 函式



Numpy broadcast_to() 函式用於將陣列廣播到新的形狀。它模仿廣播機制,在陣列上建立具有指定形狀的新檢視,而無需實際複製資料。

這對於在不復制資料的情況下使陣列具有相容的形狀以進行運算很有用。

語法

以下是 numpy.broadcast_to 函式的語法:

numpy.broadcast_to(array, shape, subok=False)

引數

以下是 numpy.broadcast_to 函式的引數:

  • array: 要廣播的陣列。
  • shape(元組): 要廣播到的陣列形狀。
  • subok(布林值,可選): 如果此引數為 True,則子類將被傳遞,否則返回的陣列將強制為基類陣列。預設值為 False。

返回值

它返回具有給定形狀的原始陣列的只讀檢視。它將具有一個設定為 True 的只讀屬性。

示例 1

以下是使用 NumPy broadcast_to() 函式將一維陣列廣播到二維形狀的示例。在此示例中,一維陣列 [1, 2, 3] 被廣播到形狀為 (3, 3) 的二維陣列。

import numpy as np

# Original array
arr = np.array([1, 2, 3])

# Broadcasting to shape (3, 3)
broadcasted_arr = np.broadcast_to(arr, (3, 3))

print("Original array:")
print(arr)
print("\nBroadcasted array:")
print(broadcasted_arr)

輸出

Original array:
[1 2 3]

Broadcasted array:
[[1 2 3]
 [1 2 3]
 [1 2 3]]

示例 2

我們可以使用 numpy.broadcast_to() 函式將二維陣列廣播到更高維度的形狀。這裡,二維陣列 [[1, 2], [3, 4]] 被廣播到形狀為 (2, 2, 2) 的三維陣列:

import numpy as np

# Original 2D array
arr = np.array([[1, 2], [3, 4]])

# Broadcasting to shape (2, 2, 2)
broadcasted_arr = np.broadcast_to(arr, (2, 2, 2))

print("Original array:")
print(arr)
print("\nBroadcasted array:")
print(broadcasted_arr)

輸出

Original array:
[[1 2]
 [3 4]]

Broadcasted array:
[[[1 2]
  [3 4]]

 [[1 2]
  [3 4]]]

示例 3

以下示例顯示了 numpy.broadcast_to() 函式如何透過擴充套件其內容而無需複製資料來有效地將給定陣列複製到新形狀:

import numpy as np 
a = np.arange(4).reshape(1,4) 

print('The original array:') 
print(a)
print('\n')  

print('After applying the broadcast_to function:') 
print(np.broadcast_to(a,(4,4)))

輸出

The original array:
[[0 1 2 3]]


After applying the broadcast_to function:
[[0 1 2 3]
 [0 1 2 3]
 [0 1 2 3]
 [0 1 2 3]]
numpy_array_manipulation.htm
廣告