与这个Matlab问题类似,我想知道如何通过截断超过特定阈值的值来截断numpy数组。所讨论的数组值是按升序排列的。
import numpy as np
a=np.linspace(1,10,num=10)
truncatevalue = 5.5
我该如何生成一个数组,其中包含小于
truncatevalue
的a
的值,并且只包括这些值?在这种情况下,结果数组将是:a_truncated=([1., 2., 3., 4., 5.])
额外奖励:实际上我有两个数组,想要根据其中一个数组中的值来截取这两个数组。
import numpy as np
a=np.linspace(1,10,num=10)
b=np.array([19, 17, 15, 14, 29, 33, 28, 4, 90, 6])
truncatevalue = 5.5
b
是一个任意的数组,我只是选择了一些数字作为明确的例子。我想以与截断a
相同的方式截断b
,使结果为:
a_truncated=([1., 2., 3., 4., 5.])
b_truncated=([19, 17, 15, 14, 29])
我不确定是否只需简单地重复获取a_truncated
所需的步骤,因此我想将其包含在内,以防需要执行其他操作。
a_truncated = a[a < truncatevalue]
吗? - NeutronStara_truncated
或b_truncated
,你只需要使用布尔数组a < truncatevalue
。只要定义了a
、b
和truncatevalue
,就可以找到任何一个数组。(你不需要先将a_truncated
分配给a[a < truncatevalue]
。) - Alex Riley