python – numpy内部存储数组的大小吗?

here的numpy数组的规范:

typedef struct PyArrayObject {
    PyObject_HEAD
    char *data;
    int nd;
    npy_intp *dimensions;
    npy_intp *strides;
    PyObject *base;
    PyArray_Descr *descr;
    int flags;
    PyObject *weakreflist;
} PyArrayObject;

当我查看numpy数组的规范时,我没有看到它存储数组的元素数量.那是真的吗?

不存储的优点是什么?

谢谢.

解决方法

大小(即数组中元素的总数)计算为数组维度中值的乘积.该数组的长度为nd.

在实现numpy核心的C代码中,您将发现宏PyArray_SIZE(obj)的许多用法.这是宏的定义:

#define PyArray_SIZE(m) PyArray_MultiplyList(PyArray_Dims(m),PyArray_NDIM(m))

不存储它的优点是不存储冗余数据.

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...