以下代码片段在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)
请建议一个解决方案,以实现所需的输出.谢谢