【问题标题】:unable to reshape array into different shapes无法将阵列重塑为不同的形状
【发布时间】:2016-01-29 21:18:00
【问题描述】:

我有以下代码:

l = -r_dot_k - sq_rt + 2*sq_rt*(npl.norm(r_rel,axis=1)<np.abs(self._radius))
l.reshape(N,1)
intercept_pt = ray_direction*l + ray_point

#r_dot_k: (25L,)
#sq_rt: (25L,)
#r_rel: (25L,3L)
#l: (25L,) #after first line
#ray_direction: (25L,3L)
#ray_point: (25L,3L)

第三行出现错误,提示“操作数无法与形状 (25,3) (25,) 一起广播”。由于 l 的形状不正确,我添加第二行尝试将 l 的形状从 (25L,) 更改为 (25L,1L),但它不起作用。第二行前后l的形状还是(25L,)。为什么?我应该如何重塑 l 以便第三行可以运行?

【问题讨论】:

  • 我认为ray_direction*l[:,None],如果你想使用第二行,可能与ray_direction*l.reshape(N,1)相同,其中N = 25

标签: python arrays numpy reshape


【解决方案1】:

array.reshape 不修改 array 它返回一个具有新形状的新数组。我想你想要:

l = l.reashape(N, 1)

【讨论】:

    猜你喜欢
    • 2021-10-05
    • 2020-10-15
    • 1970-01-01
    • 2019-08-23
    • 2020-02-18
    • 2020-04-14
    • 2020-10-05
    • 2020-01-09
    • 1970-01-01
    相关资源
    最近更新 更多