python - 在数据立方体中使用列表推导
问题描述
我目前正在尝试使用列表推导来过滤带有一些图像的数据立方体上的一些值,但是我迷失了从 2(如我们在此处或此处看到的)到 3 维的跳跃。
对于单个图像,完成我想要的代码行是:
AM2 = [[x if x > 1e-5 else 0 for x in line] for line in AM[0]]
我如何以此来考虑堆叠在彼此顶部的不同图像?我假设我需要添加第三个嵌套循环,但到目前为止我所有的尝试都失败了。
在我的特殊情况下,数据立方体由尺寸为(100x400x900)的 numpy 数组组成。是否仍建议使用列表推导来过滤该数据量的值?
谢谢你的时间。
解决方案
不要对 numpy 数组使用列表推导,你会失去它们的速度和力量。而是使用numpy 高级索引。例如,您的理解可以写成
AM2 = AM.copy() # USe AM2 = AM.copy()[0] if you just want the first row as in your example
AM2[AM2 < 1e-5] = 0
推荐阅读
- mirth - 连接到指定地址的 Mirth Connect 管理员登录错误(即使可以在浏览器中访问)?
- android - MaterialButton 内的进度条
- amazon-cognito - Cognito 验证码的纯文本电子邮件
- iptables - 'ip -4 rule add table main suppress_prefixlength 0' 是什么意思?
- quickbooks - conolibyte 中的 QBSDK 迭代器支持
- python - 如何在学习使用 Tensorflow 2.X Keras fit() 时获取 CPU 和内存使用情况
- r - r 比较运算符不适用于非常简单的代码
- java - 向 Eureka Server AWS Elastic Beanstalk 注册 Eureka Client
- reference - asp.net core 3.1 - 在同一解决方案中添加从类库到 Web 应用程序的引用
- xml - 使用 Ansible Playbook 修改 XML 文件中的数据不起作用