我有一個 NumPy 陣列,它是 TensorFlow 預測的輸出。輸出看起來像這樣:
array([[0, 1, 1, ..., 1, 1, 1],
[0, 1, 1, ..., 1, 1, 1],
[0, 1, 1, ..., 1, 1, 1],
...,
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1]])
為了進一步處理,二維 NumPy 陣列應轉換為一維字串陣列(或 python 串列)。輸出應如下所示:
array(['01111111', '01111111', '01111111', ..., '11111111', '11111111',
'11111111'], dtype='<U8')
實作這一目標的簡單或 NumPy 最佳實踐方法是什么?
uj5u.com熱心網友回復:
假設陣列被命名array并且 numpy 被匯入為np,以下行:
np.apply_along_axis(''.join, 1, array.astype(str))
就足夠了
uj5u.com熱心網友回復:
嘗試這個 :
import numpy as np
arr = np.array([[0, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1]])
output = np.array([''.join(map(str, el)) for el in arr], dtype='U8')
print(output)
輸出:
['011111' '011111' '011111' '111111' '111111' '111111']
uj5u.com熱心網友回復:
你可以apply_along_axis像下面這樣使用:
精簡版:
a = np.array([[0, 1, 1, 0, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1]])
np.apply_along_axis(''.join, 1, a.astype(str))
解釋版本:
def join_num(r):
return ''.join(map(str,r))
# or with lamda
# join_num = lambda x: ''.join(map(str,x))
np.apply_along_axis(join_num, 1, a)
輸出:
array(['0110111', '0111111', '0110111', '1111111', '1110111', '1111111'],
dtype='<U7')
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/485064.html
