我想通过以下方式“舍入”(不是精确的数学舍入)numpy数组的元素:
给出一个数字在0.00001到9.99999之间的numpy NxN或NxM 2D数组,例如
a=np.array([[1.232, 1.872,2.732,0.123],
[0.0019, 0.025, 1.854, 0.00017],
[1.457, 0.0021, 2.34 , 9.99],
[1.527, 3.3, 0.012 , 0.005]]
)
我基本上希望通过选择每个元素的第一个非零数字(不管后面第一个非零数字后面的数字)来“舍入”这个numpy数组提供输出:
output =np.array([[1.0, 1.0, 2.0, 0.1],
[0.001, 0.02, 1.0, 0.0001],
[1.0, 0.002, 2 , 9.0],
[1, 3, 0.01 , 0.005]]
)
感谢您的帮助!
首先使用数组中的每个数字获得10的幂
您可以使用np.logspace
和np.seachsorted
来确定每个元素的数量级,然后进行底数分割和相乘返回
您想要做的是保持固定数量的significant figures。