【问题标题】:Populating a 2D array to calculate a function of two linspaces填充二维数组以计算两个 linspaces 的函数
【发布时间】:2019-06-07 14:05:37
【问题描述】:

我有这组方程式要执行:

x = np.linspace(0, 2, 3)
y = np.linspace(x, x+2, 3)

然后我想用以下计算填充二维数组:

a = 2*x + y

例如,给定一个数组:

x = [0, 1, 2]

那么,数组y就是:

y = [[0, 1, 2],
     [1, 2, 3],
     [2, 3, 4]]

当我执行a = 2*x + y 操作时,我应该得到数组:

a = [[0, 1, 2],
     [3, 4, 5],
     [6, 7, 8]]

如何执行此操作,请记住我想快速执行此操作以获取大小为 10000x10000(或更大)的数组?

【问题讨论】:

  • np.add.outer(2*x+x,x)x 作为数组?
  • @Divakar 如果我的y linspace 具有非整数增量,例如y = np.linspace(x, x+2, 1000) ?在这种情况下如何运作?
  • 您打算通过np.linspace(x, x+2, 3) 获得什么?如果y = [[0, 1, 2], [1, 2, 3], [2, 3, 4]] 是给定样本的那个,那么它不会给你最终的预期输出。
  • @Divakar 在我的代码中,第二个 linspace 的下限由 x 控制,linspace:例如y = np.linspace(x, upper_limit, num_of_nums) 所以对于 x 中的每个值,我试图创建一个 y linspace,其中 x 的值作为下限。然后我想使用 y linspace 和 x linspace 生成一个包含a = 2*x + y 拥有的所有可能组合的二维数组。这有意义吗?说清楚对我来说有点困难。如果这没有帮助,我可以改写

标签: python arrays numpy


【解决方案1】:

或者你的代码添加两个Ts:

print((2*x+y.T).T)

输出:

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

【讨论】:

  • 在这种情况下如何从 x 数组生成 2D y-linspace 数组?
  • @Athena 想要的输出?
  • @Athena 我意识到你将它与 Divakar 的链接结合在一起,所以它工作正常吗?别忘了接受,并投票
猜你喜欢
  • 2022-01-06
  • 2012-03-08
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
相关资源
最近更新 更多