我知道有一个简单的解决方案,但目前似乎找不到。
给定一个 numpy 数组,我需要知道该数组是否包含整数。
检查数据类型本身是不够的,因为有多个 int 数据类型(int8、int16、int32、int64 …)。
原文由 saffsd 发布,翻译遵循 CC BY-SA 4.0 许可协议
我知道有一个简单的解决方案,但目前似乎找不到。
给定一个 numpy 数组,我需要知道该数组是否包含整数。
检查数据类型本身是不够的,因为有多个 int 数据类型(int8、int16、int32、int64 …)。
原文由 saffsd 发布,翻译遵循 CC BY-SA 4.0 许可协议
检查整数类型不适用于整数浮点数,例如 4.
更好的解决方案是 np.equal(np.mod(x, 1), 0)
,如:
>>> import numpy as np
>>> def isinteger(x):
... return np.equal(np.mod(x, 1), 0)
...
>>> foo = np.array([0., 1.5, 1.])
>>> bar = np.array([-5, 1, 2, 3, -4, -2, 0, 1, 0, 0, -1, 1])
>>> isinteger(foo)
array([ True, False, True], dtype=bool)
>>> isinteger(bar)
array([ True, True, True, True, True, True, True, True, True,
True, True, True], dtype=bool)
>>> isinteger(1.5)
False
>>> isinteger(1.)
True
>>> isinteger(1)
True
原文由 Peter D 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答860 阅读✓ 已解决
在 numpy 书中 找到它!第 23 页: