我有一个4000*6(6列)的numpy数组。我有一个最小值的numpy列(1*6)(由另一个3000*6的numpy数组组成)。 我想找到大数组中低于这些值的所有内容。但是每一个值都指向它对应的列。你知道吗
我尝试了一种简单的方法,基于我已有的单列解决方案:
largearray=[float('nan') if x<min_values else x for x in largearray]
但遗憾的是,它没有起作用:(。你知道吗
我可以为每一列和每一个值做一个for循环,但是我想知道是否有一个更快更优雅的解决方案。你知道吗
谢谢
编辑:我将尝试重新措辞:我有6个值和6列。 我想找出每列中低于6个值中相应值的值。 我所说的数组是指二维数组。抱歉,如果不清楚的话
对不起,我还在用Matlab思考。你知道吗
这是我的循环解决方案。是df,不是numpy。不过,有没有更快的办法?你知道吗
a=0
for y in dfnames:
df[y]=[float('nan') if x<minvalues[a] else x for x in df[y]]
a=a+1
df是大数组或数据帧 dfnames是我感兴趣的列名。 minvalues是每列的最小值。我假设顺序是一样的。错误的假设,但目前有效。你知道吗
会很感激你的帮助
我不使用numpy,所以它可能不是常用的解决方案,但是这样的工作:
结果应为:[[1,2,3],'nan']
我想你只需要
也就是说,
result
是largearray
的副本,但是小于min_values
对应列的ay元素被设置为nan。你知道吗如果仅当行中的所有条目都小于
min_values
的相应列时,才要将整行留空,则需要:相关问题 更多 >
编程相关推荐