当你存储一个没有分配足够内存的 numpy 数组时会发生什么?
What happens when you store a numpy array with not enough memory allocated?
我只是在研究 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]
稍微改变输入值会产生完全不同的输出,我很好奇这是为什么。
数字不是随机的;它们是互补。对于int8
,它能表示的最大正数是127,返回大于127的数的补码。例如:
>>> create_new_array([125, 126, 127, 128, 129, 130])
array([ 125, 126, 127, -128, -127, -126], dtype=int8)
我只是在研究 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]
稍微改变输入值会产生完全不同的输出,我很好奇这是为什么。
数字不是随机的;它们是互补。对于int8
,它能表示的最大正数是127,返回大于127的数的补码。例如:
>>> create_new_array([125, 126, 127, 128, 129, 130])
array([ 125, 126, 127, -128, -127, -126], dtype=int8)