Python中使用numpy创建垂直数组可以不使用reshape函数吗?
可用的简洁实现方案如下:
- 方案1:利用
None(等价于np.newaxis)直接新增维度,是numpy生态中最常用的快速生成列向量(垂直数组)的写法,代码量最小:
import numpy as np L = 2**15 dx = 0.1 x = np.arange(-L/2, L/2)[:, None] * dx
- 方案2:链式调用
reshape,用-1自动推导数组长度,无需手动传入L参数,适配性更强:
import numpy as np L = 2**15 dx = 0.1 x = np.arange(-L/2, L/2).reshape(-1, 1) * dx
注:你原有的实现逻辑本身非常合理,先生成整数序列再乘步长的写法,能避免直接给
np.arange传浮点步长带来的元素个数误差问题,上述两种方案都保留了这个优势,同时简化了代码行数。
内容的提问来源于stack exchange,提问作者Dimitri_896
相关产品推荐
相关产品推荐

