python - 为什么一个空的 numpy 数组有一个形状,这是什么意思?
问题描述
如果我像这样初始化一个numpy
数组:
data = np.empty((413, 0), dtype=float)
它有一个形状,但它是“空的”。
在这种情况下为空是什么意思?它是否充满,np.nan
如果是,为什么现在显示np.nan
?如果没有,里面是什么?它只分配内存吗?
另外,我如何检查它是否为空?显然.shape
行不通。但它是空的...
有人可以澄清这个概念吗?
解决方案
numpy.empty
并没有真正创建一个空数组。它创建一个带有未初始化数据缓冲区的数组 - 数组的元素是该内存中碰巧出现的任意垃圾。这不是随机的——它通常是全零,或者是最近释放的数组的内容,或者来自其他一些最近释放的对象的(潜在敏感的)数据。一个元素甚至可以是一个信号 NaN,如果您尝试对其进行任何操作,它可能会使您的程序崩溃。
没有办法对此进行测试。
您还指定了长度为零的维度。这使得你的数组真的是空的,因为它没有元素。您可以使用arr.size == 0
.
推荐阅读
- javascript - 在 nodejs + express 环境下,ejs 和 vue.js 是否可以共存?
- php - Woocommerce HTML 电子邮件模板添加产品图片
- svelte - 仅在 Svelte 子节点全部更新后操作 DOM
- verilog - 跨模块引用解析错误 - verilog 检查未定义的跨模块引用
- javascript - 三.js 我想对象子分配变量和循环列表但不工作
- c# - 在将 sql 数据导出到 excel 时更改 ClosedXML 中的单元格颜色
- node.js - req.on('结束触发但未触发 req.on('数据
- java - Keys.SHIFT 在 Mac 中运行良好,但在 Windows 中使用 Selenium
- spring-boot - 使用服务器配置为 Spring Boot 对传入的 Gzip 压缩请求进行 Gzip 解压
- python - RStuido 中的 Python 冲突