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

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

python numpy 中ndarry轉成string后怎么轉回來

python numpy 中ndarry轉成string后怎么轉回來

POPMUISE 2018-07-04 14:30:05
我用request.post()發送請求,data中數組不會傳,所以想把數組轉成string,得知ndarray可以通過方式tostring將ndarry形式的數據轉成string ,但不知道怎么轉回來。,求大神指教
查看完整描述

2 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

使用tostring()方法得到的字符串會丟失原始數據中的的類型(type)信息和維度(shape)信息,這意味著你要將這兩個信息一起傳送給接收者

>>> import numpy as np
>>> a = np.arange(12).reshape(3, 4)
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>> s = a.tostring()
>>> aa = np.fromstring(a)
>>> aa
array([  0.00000000e+000,   4.94065646e-324,   9.88131292e-324,
         1.48219694e-323,   1.97626258e-323,   2.47032823e-323,
         2.96439388e-323,   3.45845952e-323,   3.95252517e-323,
         4.44659081e-323,   4.94065646e-323,   5.43472210e-323])
>>> aa = np.fromstring(a, dtype=int)
>>> aa
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
>>> aa = np.fromstring(a, dtype=int).reshape(3, 4)
>>> aa
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

為了自動保持對象的一致性,可以使用cPickle,如果你是使用python3的話,可以直接使用pickle

>>> import cPickle
>>> s = cPickle.dumps(a)
>>> cPickle.loads(s)
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

沒有發現修改的地方,推薦使用第二種方式,pickle模塊在python3內置,不需要傳遞額外的參數

查看完整回答
反對 回復 2018-07-14
  • 2 回答
  • 0 關注
  • 2948 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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