我只是在玩 np.array 及其記憶體分配,我預計如果你試圖存盤一個對于記憶體分配來說太大的陣列,你只會得到一個錯誤,或者只會存盤前 x 個數字。相反,我只是得到了看似隨機的數字。這里的幕后發生了什么?
import numpy as np
def create_new_array(num_list):
new_array = np.array(num_list,np.int8)
return print(new_array)
create_new_array([31112 , 32321, 24567,456,324,789])
輸出:[-120, 65, -9, -56, 68, 21]
稍微改變輸入值會產生完全不同的輸出,我很好奇為什么會這樣。
uj5u.com熱心網友回復:
數字不是隨機的;它們是互補的。對于int8,它可以表示的最大正數是 127,超過該數字的補碼被回傳。例如:
>>> create_new_array([125, 126, 127, 128, 129, 130])
array([ 125, 126, 127, -128, -127, -126], dtype=int8)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/461742.html
上一篇:映射陣列值的有效方法
下一篇:argmax相對于行的索引
