Python 为什么float64 dtype数组的大小小于float32 dtype数组的大小?

Python 为什么float64 dtype数组的大小小于float32 dtype数组的大小?,python,arrays,Python,Arrays,在传输数据类型之前,标题中提到的Float64数组和float32数组是相同的数组 >>>tf.data array([[ 0.4323222 , 0.43547374, 0.44253287, ..., 0.47413033, 0.47939426, 0.48931041], [ 0.43846995, 0.44194463, 0.44968641, ..., 0.47143713, 0.478816 , 0

在传输数据类型之前,标题中提到的Float64数组和float32数组是相同的数组

>>>tf.data
array([[ 0.4323222 ,  0.43547374,  0.44253287, ...,  0.47413033,
         0.47939426,  0.48931041],
       [ 0.43846995,  0.44194463,  0.44968641, ...,  0.47143713,
         0.478816  ,  0.49225217],
       [ 0.45199326,  0.45617312,  0.46540445, ...,  0.46566921,
         0.47759479,  0.49858749],
       ...,
       [ 0.28666443,  0.29013845,  0.29773292, ...,  0.34627852,
         0.34814295,  0.34780815],
       [ 0.28523368,  0.29085371,  0.30313784, ...,  0.33980089,
         0.34118292,  0.34012163],
       [ 0.28374609,  0.29204369,  0.31018677, ...,  0.32426074,
         0.32583919,  0.32578641]], dtype=float32)

>>>data
array([[ 0.43232219,  0.43547375,  0.44253288, ...,  0.47413034,
         0.47939425,  0.48931042],
       [ 0.43846994,  0.44194463,  0.4496864 , ...,  0.47143714,
         0.478816  ,  0.49225218],
       [ 0.45199327,  0.45617312,  0.46540444, ...,  0.46566923,
         0.47759479,  0.4985875 ],
       ...,
       [ 0.28666442,  0.29013845,  0.29773293, ...,  0.34627851,
         0.34814295,  0.34780817],
       [ 0.28523367,  0.2908537 ,  0.30313784, ...,  0.33980089,
         0.34118291,  0.34012163],
       [ 0.2837461 ,  0.29204368,  0.31018678, ...,  0.32426075,
         0.3258392 ,  0.32578641]])
>>> tf.data.dtype
dtype('float32')
>>> data.dtype
dtype('float64')
>>> import sys
>>> sys.getsizeof(tf.data)
6836
>>> sys.getsizeof(data)
112
为什么float64数组是112,而float32数组是6836

**********************我不能回答我的问题*************************

**********************这是我的答案*********************************

哦,我知道答案,谢谢@user2357112和@user2699的回答。 数据只是指向保存在其他位置的真实对象的指针。在我的终端上有一些关于“尺寸问题”的测试


您的
数据
数组未标记为拥有其数据;这是另一个物体的视图。如果数组不拥有其数据,则不将数据的大小计入数组的大小。

可能是因为
sys.getsizeof
没有达到您期望的效果。例如,请参阅。此外,如果您包含可以运行的代码,而不仅仅是控制台输出,您将得到更好的答案。现在,
data
tf.data
可以是任何大小。@user2699谢谢。我只是觉得控制台输出的格式可能更清晰。我会记住的。哦,在我看来,我理解数组的真正对象不是在“数据”中。“数据”只是指向真实对象的指针。这是我理解的对吗?但当它是真正的对象时?当它只是一个指针时?嗯……我知道答案了。谢谢
>>> c=np.arange(100).reshape(10,10)
>>>c.dtype
dtype('int32')
>>> sys.getsizeof(c)
112
>>> e=np.int32(c)
>>> sys.getsizeof(e)
112
>>> f = c.astype(np.int32)
>>> sys.getsizeof(f)
512
>>> e=np.int8(c)
>>> sys.getsizeof(e)
212
>>> f = c.astype(np.int8)
>>> sys.getsizeof(f)
212
>>>