簡體   English   中英

用numpy連接數組的元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM