如果我必須創建一個帶有變數輸入 (2,3,2) 的 NumPy 陣列,輸出為 0,1,4,5,8,9
這是因為1是每個塊中的條目數,3是塊數,2是每個塊拼接的條目數。
我需要在我的代碼中包含什么?
uj5u.com熱心網友回復:
我認為一個簡單的嵌套 for 回圈來迭代構建陣列將在這里執行:
import numpy as np
def makeArr(x, y, z):
arr = np.array([])
cur = 0
for i in range(y):
for j in range(x):
arr = np.append(arr, [cur])
cur = 1
cur = z # Skip z numbers
return arr
print(makeArr(4, 3, 2))
uj5u.com熱心網友回復:
像這樣的事情應該根據您的描述作業。
import numpy as np
def get_my_np_array(num_entries, num_blocks, num_spliced):
result = np.array([])
start = 0
end = num_entries
for _ in range(num_blocks):
result = np.concatenate((result, np.arange(start, end)), axis=None)
start = end num_spliced
end = start num_entries
return result
print(get_my_np_array(4, 3, 2))
# Output: [ 0. 1. 2. 3. 6. 7. 8. 9. 12. 13. 14. 15.]
基本上,您迭代所需的塊數。對于每個塊,您定義一個起點和終點。然后使用 np.arange(start, end) 生成一個 numpy 陣列并將其與整體結果組合并最終回傳結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/352609.html
上一篇:陣列元素的設定限制和陣列元素的最大值和最小值的設定限制
下一篇:將int陣列轉換為字串
