创建数组:
x=array([1,2,3])
y=array([1,2])
直接相加,失败(ValueError):
z=x+y
ValueError:Operands could not be broadcast together with shapes (3)
提示两个数组的shape不符合广播机制
查看x.shape和y.shape分别显示
x.shape
(3,)
y.shape
(2,)
修改一下
x.shape=(3,1)
y.shape=(1,2)
z=x+y
z=array(
[[2,3],
[3,4],
[4,5]]
)
这样修改也行
x.shape=(1,3)
y.shape=(2,1)
z=x+y
z=array(
[[2,3,4],
[3,4,5]]
)
但是这样修改不行:
x.shape=(3,1)
y.shape=(2,1)
z=x+y
ValueError:....................................?
想想为什么?原来违背了广播机制.
通过实例可以发现shape的属性很重要