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

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

快速替換numpy數組中的值

快速替換numpy數組中的值

守候你守候我 2019-10-21 09:16:39
我有一個非常大的numpy數組(最多包含一百萬個元素),如下所示:[ 0  1  6  5  1  2  7  6  2  3  8  7  3  4  9  8  5  6 11 10  6  7 12 11  7  8 13 12  8  9 14 13 10 11 16 15 11 12 17 16 12 13 18 17 13 14 19 18 15 16 21 20 16 17 22 21 17 18 23 22 18 19 24 23]以及一個小的字典圖,用于替換上述數組中的某些元素{4: 0, 9: 5, 14: 10, 19: 15, 20: 0, 21: 1, 22: 2, 23: 3, 24: 0}我想根據上面的地圖替換一些元素。numpy數組確實很大,并且只有一小部分元素(在字典中作為鍵出現)將被替換為相應的值。最快的方法是什么?
查看完整描述

3 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

實現此目的的另一種更通用的方法是函數向量化:


import numpy as np


data = np.array([0, 1, 6, 5, 1, 2, 7, 6, 2, 3, 8, 7, 3, 4, 9, 8, 5, 6, 11, 10, 6, 7, 12, 11, 7, 8, 13, 12, 8, 9, 14, 13, 10, 11, 16, 15, 11, 12, 17, 16, 12, 13, 18, 17, 13, 14, 19, 18, 15, 16, 21, 20, 16, 17, 22, 21, 17, 18, 23, 22, 18, 19, 24, 23])

mapper_dict = {4: 0, 9: 5, 14: 10, 19: 15, 20: 0, 21: 1, 22: 2, 23: 3, 24: 0}


def mp(entry):

    return mapper_dict[entry] if entry in mapper_dict else entry

mp = np.vectorize(mp)


print mp(data)


查看完整回答
反對 回復 2019-10-21
  • 3 回答
  • 0 關注
  • 3839 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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