我的问题很简单,假设我有一个像
array = np.array([1, 2, 3, 4])
我想得到一个像
[1, 0.5, 0.3333333, 0.25]
但是,如果你写类似
1/array
或者
np.divide(1.0, array)
它行不通。
到目前为止,我发现的唯一方法是编写如下内容:
print np.divide(np.ones_like(array)*1.0, array)
但我绝对肯定有更好的方法来做到这一点。有谁有想法吗?
1 / array进行整数除法并返回array([1, 0, 0, 0]).
1. / array将数组转换为浮动并完成技巧:
>>> array = np.array([1, 2, 3, 4])
>>> 1. / array
array([ 1. , 0.5 , 0.33333333, 0.25 ])
我试过 :
inverse=1./array
这似乎有效......原因
1/array
不起作用是因为您的数组是整数并且进行1/<array_of_integers>整数除法。
获取整数数组中每个元素的倒数的其他可能方法:
array = np.array([1, 2, 3, 4])
使用 numpy 的倒数:
inv = np.reciprocal(array.astype(np.float32))
投掷:
inv = 1/(array.astype(np.float32))