1 回答

TA貢獻1816條經(jīng)驗 獲得超6個贊
In [54]: x=np.array([1,2,3,4])
In [55]: [type(a) for a in x]
Out[55]: [numpy.int64, numpy.int64, numpy.int64, numpy.int64]
In [56]: [id(a) for a in x]
Out[56]: [140147220886728, 140147220887808, 140147220886728, 140147220887808]
小整數(shù)的 id 是唯一的,但這不是數(shù)組包含的內(nèi)容:
In [57]: [type(a) for a in x.tolist()]
Out[57]: [int, int, int, int]
In [58]: [id(a) for a in x.tolist()]
Out[58]: [10914496, 10914528, 10914560, 10914592]
In [59]: id(2)
Out[59]: 10914528
另一種獲取int對象的方法:
In [60]: [id(a.item()) for a in x]
Out[60]: [10914496, 10914528, 10914560, 10914592]
編輯
如果我將 的元素分配x給變量元組,則它們id不會被重用。 id(x0)還在使用中,所以id(x2)不能接受。的改變Out[56]只是解釋器重用內(nèi)存的產(chǎn)物。
In [73]: x0,x1,x2,x3 = x
In [74]: id(x0),id(x1),id(x2),id(x3)
Out[74]: (140146931335720, 140146931335504, 140146931335600, 140146931335576)
In [75]: type(x0)
Out[75]: numpy.int64
添加回答
舉報