【发布时间】:2017-09-12 13:12:13
【问题描述】:
我想对“锯齿状数组”进行操作,我更喜欢写 “一个+一个” 代替 "[x + y for x,y in zipped(A,A)]"
为此,我想将不同大小的数组列表转换为一个整体的 numpy 数组,但由于看似过于热心的广播而遇到错误(注意前三个成功,但最后一个失败):
In[209]: A = array([ones([3,3]), array([1, 2])])
In[210]: A = array([ones([3,3]), array([1, 2])], dtype=object)
In[211]: A = array([ones([3,2]), array([1, 2])], dtype=object)
In[212]: A = array([ones([2,2]), array([1, 2])], dtype=object)
Traceback (most recent call last):
File "/home/hzhang/.conda/envs/myenv/lib/python3.4/site-
packages/IPython/core/interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-212-7297723106f9>", line 1, in <module>
A = array([ones([2,2]), array([1, 2])], dtype=object)
ValueError: could not broadcast input array from shape (2,2) into shape (2)
帮助?
【问题讨论】: