Numpy数组元素划分(1/x)

Roo*_*hie 7 python numpy division

我的问题很简单,假设我有一个类似的数组

array = np.array([1, 2, 3, 4])
Run Code Online (Sandbox Code Playgroud)

而且我想得到一个类似的数组

[1, 0.5, 0.3333333, 0.25]
Run Code Online (Sandbox Code Playgroud)

但是,如果你写了类似的东西

1/array
Run Code Online (Sandbox Code Playgroud)

要么

np.divide(1.0, array)
Run Code Online (Sandbox Code Playgroud)

它不会起作用.

到目前为止我找到的唯一方法是写下这样的东西:

print np.divide(np.ones_like(array)*1.0, array)
Run Code Online (Sandbox Code Playgroud)

但我绝对相信有更好的方法可以做到这一点.有谁有想法吗?

eum*_*iro 13

1 / array进行整数除法并返回array([1, 0, 0, 0]).

1. / array 将数组转换为float并执行操作:

>>> array = np.array([1, 2, 3, 4])
>>> 1. / array
array([ 1.        ,  0.5       ,  0.33333333,  0.25      ])
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,如果您将 `from __future__ import Division` 放在代码的开头,那么它将始终使用整数执行真正的除法。这是 Python 3 中的默认行为,因为这是大多数人所期望的答案。您仍然可以使用 `//` 运算符进行整数除法。 (2认同)