下面是我嘗試將 2 個一維陣列附加到 1 個一維陣列的代碼:
import numpy as np
import random
arr = np.random.randint(10, size=(1,))
arr1 = np.random.randint(20, size=(1,))
arr2 = np.random.randint(30, size=(1,))
print(arr)
print(arr1)
print(arr2)
aparr = np.append(arr, arr1, arr2)
print(aparr)
但是,我收到一條錯誤訊息:
21 print(arr2)
22
---> 23 aparr = np.append(arr, arr1, arr2)
24 print(aparr)
<__array_function__ internals> in append(*args, **kwargs)
/usr/local/lib/python3.7/dist-packages/numpy/lib/function_base.py in append(arr, values, axis)
4669 values = ravel(values)
4670 axis = arr.ndim-1
-> 4671 return concatenate((arr, values), axis=axis)
4672
4673
<__array_function__ internals> in concatenate(*args, **kwargs)
TypeError: only integer scalar arrays can be converted to a scalar index
不確定,我錯過了什么/做錯了什么。有人可以通過更正這段代碼來查看并指出/解釋錯誤嗎?
uj5u.com熱心網友回復:
np.append() 有兩個引數,一個要附加到的陣列和一個要附加到它的值串列。所以,更換
aparr = np.append(arr, arr1, arr2)
經過
aparr = np.append(arr, [arr1, arr2])
它應該作業。
uj5u.com熱心網友回復:
我相信您正在尋找的命令稱為np.concatenate
That 是通常用于將多個陣列組合成一個相同維度的陣列的命令。
arr = np.random.randint(10, size=(10,))
arr1 = np.random.randint(20, size=(10,))
arr2 = np.random.randint(30, size=(5,))
combined = np.concatenate([arr, arr1, arr2]) # will be of size 25
請注意,所有陣列都在一個串列中(可以是元組或其他東西,只要它作為一個變數傳遞給函式)。
可以使用np.append,但這只是np.concatenate在源代碼中可以看到的有限版本,它僅在組合兩個陣列時才有效,因此您必須分兩步或通過組合兩個陣列來完成應該添加:
combined = np.append(np.append(arr, arr1), arr2)
# OR
combined = np.append(arr, [arr1, arr2])
最后一個替代方案有效,因為陣列在組合之前被展平,因為axis(組合兩個陣列的維度)沒有指定。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/367585.html
上一篇:如何使用reactjs中的map函式將物件值一一設定到文本欄位中
下一篇:找出2個大陣列之間的差異
