基本上我有一个数据数组,我想根据数组的最小值分成2个。我尝试了一个for循环,但它根据值的大小将其拆分,而不是有效地将其拆分到该值的左侧或右侧。我想我在寻找一些有效的东西,比如numpy中的分割模块,但是它返回两个独立的独立数组,而不是一个包含子数组的数组
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为空…我不明白为什么。get_lowest_minima(profile_rough)[0]位是元组的整数元素,profile_rough是我的数据数组。救命啊
以下是一个简单的解决方案:
您还可以找到带有以下内容的
split_index
:有关更多详细信息,请查看this问题
您需要的是找到最小值的索引,然后根据该索引拆分数组
相关问题 更多 >
编程相关推荐