【发布时间】:2020-03-04 15:18:38
【问题描述】:
基本上我有一个数据数组,我想根据数组的最小值分成 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 是我的数据数组。帮忙!
【问题讨论】:
-
提示:你关心元素的index,而不是它的值。了解切片
-
非常公平 - 没有正确理解以前的帽子!这就是我试图做的事情 - 但它不起作用。有任何想法吗?编辑:我把它放在问题中,因为那里的格式很好
-
@Adam.Er8 仍然非常感谢您的帮助!我今天才能够再次拿起这个项目。
标签: python arrays python-3.x sorting split