栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

numpy:“ array_like”对象的正式定义?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

numpy:“ array_like”对象的正式定义?

事实证明,几乎所有东西在技术上都类似于数组。“类数组”更多地是关于如何解释输入的说明,而不是对输入内容的限制。如果参数记录为类似数组的形式,则NumPy将尝试将其解释为数组。

除了几乎是重言式的之外,没有像数组一样的正式定义-
像数组一样是

np.array
可以转换为的任何Python对象
ndarray
。要做到这一点,您需要研究源代码。

NPY_NO_EXPORT PyObject *PyArray_FromAny(PyObject *op, PyArray_Descr *newtype, int min_depth,     int max_depth, int flags, PyObject *context){        PyArrayObject *arr = NULL, *ret;    PyArray_Descr *dtype = NULL;    int ndim = 0;    npy_intp dims[NPY_MAXDIMS];        if (PyArray_GetArrayParamsFromObject(op, newtype,  0, &dtype,  &ndim, dims, &arr, context) < 0) {        Py_XDECREF(newtype);        return NULL;    }    ...

尤其有趣的是

PyArray_GetArrayParamsFromObject
,其注释列举了
np.array
期望的对象类型:

NPY_NO_EXPORT intPyArray_GetArrayParamsFromObject(PyObject *op,  PyArray_Descr *requested_dtype,  npy_bool writeable,  PyArray_Descr **out_dtype,  int *out_ndim, npy_intp *out_dims,  PyArrayObject **out_arr, PyObject *context){    PyObject *tmp;                                }

因此,通过研究源代码,我们可以得出类似数组的结论

  • 一个NumPy数组,或者
  • 一个NumPy的标量,或
  • Python标量,或者
  • 任何支持PEP 3118缓冲区接口的对象,或者
  • 任何支持
    __array_struct__
    or
    __array_interface__
    接口的对象,或者
  • 提供
    __array__
    功能的任何对象,或者
  • 可以视为列表列表的任何对象,或者
  • 什么!如果它不属于其他情况之一,它将被视为
    object
    dtype的0维数组。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668471.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号