[英]Concatenate elements of an array with numpy?
我正在使用 python/numpy 並在文檔中搜索,但找不到完成此操作的方法
我有這兩個數組,想將數組內的元素連接成第二個數組
這是我的第一個數組
import numpy as np
a = np.array([0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0])
我的目標是
輸出:
[[00000000], [00000000]]
這樣做的原因是為了稍后將數組的每個元素轉換為十六進制
In [100]: a = np.array([[0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0]])
In [101]: a
Out[101]:
array([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0]])
In [102]: a.astype(str)
Out[102]:
array([['0', '0', '0', '0', '0', '0', '0', '0'],
['0', '0', '0', '0', '0', '0', '0', '0']], dtype='<U11')
In [103]: a.astype(str).tolist()
Out[103]:
[['0', '0', '0', '0', '0', '0', '0', '0'],
['0', '0', '0', '0', '0', '0', '0', '0']]
In [104]: [''.join(row) for row in _]
Out[104]: ['00000000', '00000000']
你可以試試這個方法:
import numpy as np
a = np.array([0, 0, 0, 0, 0, 0, 0, 0])
b = np.array([0, 0, 0, 0, 0, 0, 0, 0])
#concatenate
concat=np.concatenate((a,b))
#reshape
print(np.reshape(concat,[-1,8]))
輸出:
[[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]]
一個更簡潔、純粹的 numpy 版本,改編自這個答案:
np.apply_along_axis(lambda row: row.astype('|S1').tostring().decode('utf-8'),
axis=1,
arr=a)
這將創建一個最大長度為 8 的 unicode 字符串數組:
array(['00000000', '00000000'], dtype='<U8')
請注意,此方法僅在原始數組 (a) 包含 0 <= i < 10 范圍內的整數時才有效,因為我們使用.astype('|S1')
將它們轉換為單個以零結尾的字節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.