python - 如何根据数组中的值拆分数组?
问题描述
基本上我有一个数据数组,我想根据数组的最小值分成2个。我尝试了一个 for 循环,但它根据值的大小将其拆分,而不是有效地,如果它位于该值的左侧或右侧。我想我正在寻找像 numpy 中的 split 模块这样有效的东西,但它返回 2 个独立的单独数组,而不是其中包含子数组的数组。
node1=[]
node2=[]
for i in profile_coarse:
if i<7.2e-10:
node1.append(i)
else:
node2.append(i)
显然因为 7.2e-10 是最小值,所有值都转到 node2 并且 node1 仍然是一个空数组。最小值位于我的数据数组中间的某个位置,我希望它之前的所有内容都存储在 node1 中,之后的所有内容都存储在 node2 中。我隐约知道 np.where 是什么,但我似乎无法在这里正确应用它。如何更改 if 循环的条件以使其正常工作?非常感谢你的帮忙!
编辑:使用数组索引的想法,我到了这里:
node1=[]
node2=[]
for index in enumerate(profile_coarse):
if i<get_lowest_minima(profile_coarse)[0]:
node1.append(i)
else:
node2.append(i)
print("array node1", node1, "array node2", node2)
这不起作用 - 它填充了 node1 数组,并使 node2 为空......我不知道为什么。teh get_lowest_minima(profile_coarse)[0] 位是元组的整数元素,而 profile_coarse 是我的数据数组。帮助!
解决方案
您需要的是找到最小值的索引,然后根据该索引拆分数组。
import numpy as np
a = np.random.randint(0, 255, 10). # sample data [ 9 33 155 48 196 3 96 185 112 104]
min_index = np.argmin(a)
node1 = a[:min_index] # [ 9 33 155 48 196]
node2 = a[min_index:] # [ 3 96 185 112 104]
推荐阅读
- python-3.x - 获取 ValueError:在尝试计算 KNN 分数时没有足够的值来解包(预期为 6,得到 5)
- python - 在不同的数据维度上评估模型
- javascript - 无法使用按钮添加 DIV 元素
- python - 捕获有效的逗号分隔数字 python 正则表达式
- java - Spring Boot 中嵌入 Flyway 的许可证是什么
- c# - 从类调用函数时抛出 NullObjectReference
- c# - Entity Framework Core:可能导致循环或多个级联路径
- django - 无法在 django 模型中向 TimeField 添加时间 [
] - xamarin - 为什么在我的 ViewModel 上找不到 Binding ItemSource 属性?
- javascript - How to produce data after getting firebase firestore in Vue.JS