数组的 numpy.shape 中的 L 和 numpy.type 中的 32 是什么?

2024-04-22

我正在尝试 numpy 数组的功能,下面是代码:

import numpy as np

Z =np.array( 
    [[0,4,0,0,0,0],
     [0,0,0,1,0,0],
     [0,1,0,1,0,0],
     [0,0,1,1,0,0],
     [0,0,0,0,0,0],
     [0,0,0,0,0,0]])
print Z
print Z.dtype
print Z.shape

这给出了:

[[0 4 0 0 0 0]
 [0 0 0 1 0 0]
 [0 1 0 1 0 0]
 [0 0 1 1 0 0]
 [0 0 0 0 0 0]
 [0 0 0 0 0 0]]
int32
(6L, 6L)

它是一个 6 行 6 列的整数数组。但是 numpy.type 中的 32 和 numpy.shape 中的 L 是什么?


32个在数组类型 http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html指存储数组的底层机器整数的32位宽度。这意味着一个包含 100 万个元素的数组将占用至少 400 万字节(3200 万位)的内存。

另一方面,后缀L由返回shape属性与您可以放入数组中的数据无关,您不应该关心它。如果您对技术细节感兴趣,L表示longPython 类型用于表示无限宽度的整数(不要与同名的 C 类型混淆)。将小整数(例如数字 6)表示为没有多大意义long,但有些代码无论如何都会这样做,以便与返回更大整数的相同 API 保持一致。例如,os.stat调用总是返回长整数的字节大小,即使它们适合常规的inttype,以保持其返回值的类型不变性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数组的 numpy.shape 中的 L 和 numpy.type 中的 32 是什么? 的相关文章

随机推荐