【问题标题】:Arithmetic Operations on Numpy ArrayNumpy 数组的算术运算
【发布时间】:2014-04-05 15:06:18
【问题描述】:

我有两个 numpy 数组 pcarout_list

[[  5.80084178e-05   1.20779787e-02  -2.65970238e-02]
 [ -1.36810406e-02   6.85722519e-02  -2.60280724e-01]
 [  4.21996519e-01  -1.43644036e-01   2.12904690e-01]
 [  3.03098198e-02   1.50170659e-02  -1.09683402e-01]
 [ -1.50776089e-03   7.22369575e-03  -3.71181228e-02]
 [ -3.04448275e-01  -3.66987035e-01   1.44618682e-01]
 [ -1.46744916e-01   3.47112167e-01   3.09550267e-01]
 [  1.16567762e-03   1.72858807e-02  -9.39297514e-02]
 [  1.25896836e-04   1.61310167e-02  -6.00253128e-02]
 [  1.65062798e-02   1.96933143e-02  -4.26540031e-02]
 [ -3.78020965e-03   7.51770012e-03  -3.67852984e-02]]

[[-0.01368104  0.06857225 -0.26028072]
 [ 0.42199652 -0.14364404  0.21290469]]

我想从pcar 中减去out_list,并希望得到两个不同的数组和结果。

例子:

第一个数组作为-

[[ 5   8    5]
 [ 1   2    4]
 [ 7   6    1]]

第二个数组作为-

[[ 1   6   2]
 [ 4   5   3]]

那么结果应该是

[[ 4   2   3]
 [ 0   -4   2]
 [ 6    0  -1]]

[[ 1   3   2]
 [-3  -3   1]
 [ 3   1  -2]]

【问题讨论】:

  • 我不知道如何在11 x 32 x 3 矩阵之间进行减法?你的意思是两个结果11 x 3 - 1 x 311 x 3 - 1 x 3
  • @mskimm 是的,我想要11 x 3 - 1 x 3 and 11 x 3 - 1 x 3 的结果。
  • 这里的减法是不明确的。从数学的角度来看,不可能从 11x3 矩阵中减去 2x3 矩阵。
  • 请附上您想要的简化示例。
  • @jojo 我想从11 x 3 数组的所有行中删除2 x 3 数组的第一行,依此类推。这样我就会得到两个大小为11 x 3的atrix

标签: python arrays numpy


【解决方案1】:

这应该可以完成工作:

import numpy as np
a = np.array([[1,2,3],[10,20,30],[100,200,300]])
b = np.array([[1,2,3],[10,20,30]])
result_list = [np.subtract(a,b_x) for b_x in b]
#now you can use the result_list:
print result_list[0]
#>>> [[  0   0   0]
#     [  9  18  27]
#     [ 99 198 297]]

print result_list[1]
#>>>[[ -9 -18 -27]
#    [  0   0   0]
#    [ 90 180 270]]

【讨论】:

  • 能否以不同的方式访问这两个数组,以便对其进行更多操作?
  • 我不完全确定我是否理解你想要做什么,但会编辑我的答案,等一下......
  • 如果它适合您,请考虑接受答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 2015-06-02
  • 2021-10-18
  • 1970-01-01
  • 2020-02-18
相关资源
最近更新 更多