Tob*_*s K 2 python numpy python-3.x
I want to mutiply this array of arrays with 1080 and 1920.
[[0.4375, 0.3477366255144033], [0.3599537037037037, 0.676954732510288], [0.5648148148148148, 0.720164609053498], [0.8483796296296297, 0.44238683127572015], [0.8726851851851852, 0.3374485596707819]]
Run Code Online (Sandbox Code Playgroud)
So 0.4375 * 1080
and 0.3477 * 1920
I want to do this for each element.
如何使用Python或numpy执行此操作?
只需将数据转换为数组,然后简单地乘积即可*
。这里的技巧是为要与之相乘的两个值创建一维向量。在*
然后执行元素方式乘法
import numpy as np
mult = np.array([1080, 1920])
inp = np.array([[0.4375, 0.3477366255144033], [0.3599537037037037, 0.676954732510288],
[0.5648148148148148, 0.720164609053498], [0.8483796296296297, 0.44238683127572015],
[0.8726851851851852, 0.3374485596707819]])
result = inp*mult
# array([[ 472.5 , 667.65432099],
# [ 388.75 , 1299.75308642],
# [ 610. , 1382.71604938],
# [ 916.25 , 849.38271605],
# [ 942.5 , 647.90123457]])
Run Code Online (Sandbox Code Playgroud)
编辑::时间比较两种方法工作类似
%timeit inp*mult
# 2.89 µs ± 365 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit np.multiply(inp, mult)
# 2.55 µs ± 322 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
82 次 |
最近记录: |