小编Man*_*ish的帖子

numpy数组1.9.2得到ValueError:无法将形状(4,2)的输入数组广播为形状(4)

以下代码片段在numpy 1.7.1中工作,但它在当前版本中给出了值错误.我想知道它的根本原因.

    import numpy as np
    x = [1,2,3,4]
    y = [[1, 2],[2, 3], [1, 2],[2, 3]]

    a = np.array([x, np.array(y)])
Run Code Online (Sandbox Code Playgroud)

以下是我在numpy 1.7.1中得到的输出

>>>a
array([[1, 2, 3, 4],
       [array([1, 2]), array([2, 3]), array([1, 2]), array([2, 3])]], dtype=object)
Run Code Online (Sandbox Code Playgroud)

但是相同的代码在版本1.9.2中产生错误.

    ----> 5 a = np.array([x, np.array(y)])

ValueError: could not broadcast input array from shape (4,2) into shape (4) 
Run Code Online (Sandbox Code Playgroud)

我找到了一个可能的解决方案.但我不知道这是否是最好的事情.

b= np.empty(2, dtype=object)
b[:] = [x, np.array(y)]

>>> b
array([[1, 2, 3, 4],
       array([[1, 2],
       [2, 3],
       [1, 2],
       [2, 3]])], dtype=object)
Run Code Online (Sandbox Code Playgroud)

请建议一个解决方案,以实现所需的输出.谢谢

python numpy

13
推荐指数
1
解决办法
4万
查看次数

标签 统计

numpy ×1

python ×1