python - 如何删除 numpy 数组中的元素并在 python 中使用 for 循环及其索引
问题描述
这是我所做的,但它不起作用,我做了一个 for 循环,我用它来获取索引并在另一件事中使用它为什么它不起作用或者我可以找到另一种方法来删除元素并使用它的索引。
这是我的一些代码
X1_train, X1_test, y1_train, y1_test = train_test_split(EclipseFeautres, EclipseClass, test_size=0.3, random_state=0)
E_critical_class=y1_train.copy()
E_critical_class = E_critical_class[E_critical_class != 1]
for x in range(len(E_critical_class)):
if(E_critical_class[x]==1):
E=np.delete(E_critical_class,x)
解决方案
您的任务类似于过滤数组。您想删除所有元素== 1。
假设源数组 ( arr ) 包含:
array([0, 1, 2, 3, 4, 1, 0, 3, 7, 1])
所以它包含 3 个元素== 1(要删除)。
一个更简单的方法是使用布尔索引并将结果保存回原始变量:
arr = arr[arr != 1]
结果是:
array([0, 2, 3, 4, 0, 3, 7])
如你所愿 - 所有的都掉了。
推荐阅读
- qt - TextArea 有问题的背景 QML QT
- sql - sql搜索多个值
- postgresql - PostgreSQL:如果更新(列名)等效于 postgres
- ruby-on-rails - 我如何知道 ruby on rails 应用程序是否使用数据库分区?
- postgresql - 如何在 PostgreSQL 中按非不同/非唯一值对排序进行分页?
- javascript - 水平对齐一个 div 和一个 DIV 内的两个图像
- ios - IOS Mapkit 或 Core Location 解决旅行商问题
- ruby-on-rails - 有条件地为 activerecords 中的多对多关系创建新记录
- python - 与数据库交互时我应该创建同步还是异步 POST API?
- python - 编码问题请求结果