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

use*_*991 13 python arrays numpy

我正在尝试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
Run Code Online (Sandbox Code Playgroud)

这给了:

[[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)
Run Code Online (Sandbox Code Playgroud)

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

use*_*342 19

在32 阵列型是指底层机器整数存储阵列的32位宽度.这意味着具有100万个元素的数组将占用至少400万字节(3200万位)的内存.

另一方面,属性L返回的后缀shape与您可以放入数组中的数据无关,您不应该关注它.如果您对技术细节感兴趣,则L表示long用于表示无界宽度的整数的Python类型(不要与同名的C类型混淆).表示一个小整数(例如数字6)没有多大意义long,但是为了与返回更大整数的相同API保持一致,有些代码仍然这样做.例如,os.stat调用总是以长整数形式返回字节大小,即使它们符合常规int类型,也是为了保持其返回值的类型不变性.


zha*_*hen 3

在我的机器上它给出(6, 6)L在你的机器上将它标记为长整型

IE

In [133]: type(123L) is long
Out[133]: True
Run Code Online (Sandbox Code Playgroud)