亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將1x1維數組的列表轉換為python中的浮點列表

將1x1維數組的列表轉換為python中的浮點列表

qq_遁去的一_1 2021-05-14 14:12:29
我有以下形式的清單:[array([ 3755.16235032]), array([ 3755.16235032]), array([ 3755.16235032]), array([ 3755.16235032])]我想要一份表格清單:[3755.16235032, 3755.16235032, 3755.16235032, 3755.16235032]第一個列表的每個元素都是一個sci kit學習回歸器的結果。我想要第二種格式,以便繪制分類器的預測。
查看完整描述

3 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

只是替代解決方案:鑒于x您的輸入list,您可以使用ravel()NumPy作為


xlst = list(np.array(x).ravel())

print (xlst)

或者您可以將其flatten()用作


xlst = list(np.array(x).flatten())

print (xlst)

如果您只想將最終答案作為數組,則無需放在list之后=。并且,如果您的輸入x已經是numpy array類型,請替換np.array(x).ravel()為x.ravel()。


或者,如上面的答案中已經提到的list(),您也可以使用np.array(x).flatten().tolist()和來代替轉換為列表np.array(x).ravel().tolist()


出于以下一種答案中的注釋(感謝評論者)的啟發,對本頁列出的所有可能答案進行了一些時間分析(由于格式問題,很容易將其放在此處而不是注釋中):


x = np.array([np.array([i]) for i in range(100000)])

%timeit np.concatenate(x).tolist()

%timeit np.hstack(x).tolist()

%timeit x.flatten().tolist()

%timeit x.ravel().tolist()

輸出


10 loops, best of 3: 55.2 ms per loop

10 loops, best of 3: 155 ms per loop

100 loops, best of 3: 2.45 ms per loop

100 loops, best of 3: 2.29 ms per loop


查看完整回答
反對 回復 2021-05-18
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

使用np.concatenate以避免手動迭代:


my_list = [np.array([ 3755.16235032]),

 np.array([ 3755.16235032]),

 np.array([ 3755.16235032]),

 np.array([ 3755.16235032])]


new_list = np.concatenate(my_list).tolist()


>>> new_list

[3755.16235032, 3755.16235032, 3755.16235032, 3755.16235032]

基準測試:

根據評論中的廣泛討論,這是我的基準測試:


my_list = [np.random.randn(1) for _ in range(100000)]


def concat_method(my_list=my_list):

    return np.concatenate(my_list).tolist()


def hstack_method(my_list=my_list):

    return np.hstack(my_list).tolist()


def flatten_method(my_list=my_list):

    return np.array(my_list).flatten().tolist()


def ravel_method(my_list=my_list):

    return np.array(my_list).ravel().tolist()


import timeit


>>> timeit.timeit(concat_method, number=100) / 100

0.025655772869977226

>>> timeit.timeit(hstack_method, number=100) / 100

0.1172302443100125

>>> timeit.timeit(ravel_method, number=100) / 100

0.041237239889997

>>> timeit.timeit(flatten_method, number=100) / 100

0.0412076849100049


查看完整回答
反對 回復 2021-05-18
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

通過使用 hstack


np.hstack(my_list).tolist()

Out[180]: [3755.16235032, 3755.16235032, 3755.16235032, 3755.16235032]


查看完整回答
反對 回復 2021-05-18
  • 3 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號