当前位置: 首页 > 知识库问答 >
问题:

如何截断大于指定值的numpy数组?

慕意致
2023-03-14
import numpy as np
a=np.linspace(1,10,num=10)
truncatevalue = 5.5
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
a_truncated=([1., 2., 3., 4., 5.])
b_truncated=([19, 17, 15, 14, 29])

我不知道它是否会像重复需要做什么来获得_truncated那么简单,所以我也想包含它,以防需要做一些不同的事情。

共有1个答案

巫马俊力
2023-03-14

可以使用布尔索引:

>>> a = np.linspace(1, 10, num=10)
>>> truncatevalue = 5.5
>>> a_truncated = a[a < truncatevalue]
>>> a_truncated
array([ 1.,  2.,  3.,  4.,  5.])

本质上,a 返回一个布尔数组,指示 a的元素是否满足条件。使用此布尔数组索引 a将返回 a的视图,其中每个元素的索引为 true

所以对于问题的第二部分,你需要做的就是:

>>> b = np.array([19, 17, 15, 14, 29, 33, 28, 4, 90, 6])
>>> b_truncated = b[a < truncatevalue]
>>> b_truncated
array([19, 17, 15, 14, 29])

 类似资料:
  • 问题内容: 我想从浮点数中删除数字,以使小数点后的位数固定不变,例如: 我需要作为字符串输出到另一个函数,而不是打印。 我也想忽略丢失的数字,而不是四舍五入。 问题答案: 首先,对于那些只需要复制和粘贴代码的人来说,该函数是: 这在Python 2.7和3.1+中有效。对于较旧的版本,不可能获得相同的“智能舍入”效果(至少,并非没有很多复杂的代码),但是在截断前舍入到小数点后12位将在大多数时间起

  • 问题内容: 当我打印一个numpy数组时,我得到了一个截断的表示形式,但是我想要完整的数组。 有什么办法吗? 例子: 问题答案: 用途

  • 这将返回来自100多个表的结果,但只有1个表崩溃。提前感谢你的帮助

  • 问题内容: 我需要一种快速的方法来保持运行最大的numpy数组。例如,如果我的数组是: 我想要: 显然我可以做一个小循环: 但是我的数组有成千上万的条目,我需要多次调用。似乎必须要有一个小技巧才能删除循环,但我似乎找不到任何有效的方法。另一种选择是将其编写为C扩展,但似乎我会重新发明轮子。 问题答案: 为我工作。

  • 例如 然后对于每一行,我会找到大于另一个数组中相应值的值的数量,比如b=np。数组([2,1,0]),预期结果是数组[1,1,3](第一行,一个大于2的数字,第二行,一位大于1的数字,以及第三行三个大于0的数字)。 有没有办法使用numpy内置方法来实现这一点?非常感谢!

  • 问题内容: 嗨,这对我来说是个棘手的问题。我有三张桌子。 一个包含手机号码和唯一的ID(tbldealermobiles) 其中一个包含购买日期,唯一的ID和其他详细信息(历史记录) 其中一个包含客户类型,唯一ID和其他详细信息。(tblAllDealers) 当我想显示购买了超过30天(如果是“ Outbound”)和购买超过60天(如果是虚拟)的客户时,就会出现问题。 我只想返回Jon和Jac