【问题标题】:creating vertical arrays of in python, can I avoid the reshape function? [duplicate]在python中创建垂直数组,我可以避免重塑功能吗? [复制]
【发布时间】:2021-12-05 01:12:59
【问题描述】:

我想按照如下创建一个垂直数组

import numpy as np

L = 2**15
dx = 0.1
x = np.arange(-L/2,L/2)*dx
x=x.reshape((L,1)) 

这会创建一个维度为 L,1 的数组,这很好,但有没有更简洁的方法来做到这一点?我觉得我的解决方案很笨拙

【问题讨论】:

  • N 定义在哪里?
  • 对不起,N 应该是 L. 编辑
  • 重塑有什么问题?您还可以链接命令:x = np.arange(-L/2,L/2).reshape(-1,1) * dx.
  • 仅仅因为您对所得到的答案不满意而重新发布问题不被视为良好的 SO 行为。如有必要,请评论您给出的答案。如果您必须更早地建立某些东西,至少要承认以前的答案。
  • 这不是明确的转发。我在问如何简化我以前做过的事情。我没有意识到这与 SO 政策相矛盾,因此不会再这样做了。

标签: python arrays numpy reshape


【解决方案1】:

你可以使用:

x = (np.arange(-L/2,L/2)*dx)[:, None]

或者:

X = L*dx/2
np.arange(-X,X,dx)[:, None]

虽然由于浮点计算,您可能会在第二种方法中累积错误。

【讨论】:

    猜你喜欢
    • 2016-06-13
    • 2015-06-21
    • 1970-01-01
    • 2018-05-26
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多