gpt4 book ai didi

python - 为什么 numpy 数组有 96 字节的开销?

转载 作者:行者123 更新时间:2023-12-03 14:07:51 25 4
gpt4 key购买 nike

如果我采用一个简单的空 numpy 数组,我可以看到它有 96 个字节的开销,

>>> sys.getsizeof( np.array([]) )
96

那 96 个字节存储的是什么?这是在 numpy 或 Python 3 (cpython) 的 C 源代码中的哪里设置的?

最佳答案

数组存在于 numpy/core/include/numpy/ndarraytypes.h 中的 C 源代码中

见:https://github.com/numpy/numpy/blob/master/numpy/core/include/numpy/ndarraytypes.h

看起来它有几个指针、维数和 PyObject_HEAD,它们的总数可能与您看到的字节数有关。

/*                                                                                                                                                                                                                                            
* The main array object structure.
*/
/* This struct will be moved to a private header in a future release */
typedef struct tagPyArrayObject_fields {
PyObject_HEAD
/* Pointer to the raw data buffer */
char *data;
/* The number of dimensions, also called 'ndim' */
int nd;
/* The size in each dimension, also called 'shape' */
npy_intp *dimensions;
/*
* Number of bytes to jump to get to the
* next element in each dimension
*/
npy_intp *strides;

PyObject *base;
/* Pointer to type structure */
PyArray_Descr *descr;
/* Flags describing array -- see below */
int flags;
/* For weak references */
PyObject *weakreflist;
} PyArrayObject_fields;

关于python - 为什么 numpy 数组有 96 字节的开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60302874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com