私はnumpyで放送中のnewbyです。次のように私は3つのnumpyの配列を定義:broadcastableことになっているのでPython、numpy:3次元放送
from numpy import *
a=array([10,20]).reshape(2,1)
b=array([100,200,300]).reshape(1,3)
c=arange(1,11).reshape(1,1,10)
+ bは、DIM 1 2vs1(DIM 2 1vs3(2,1)対(1,3)の合計であり、ブロードキャストルールが満たされる)。確かにある:
>>> a+b
array([[110, 210, 310],
[120, 220, 320]])
+ Cは、broadcastableことになっているので、(2,1)対(1,1,10)の和である(DIM 1で2vs1、DIM 2で1vs1と1vs10 dim 3、ブロードキャストルールが満たされる)。確かにある:
>>> a+c
array([[[11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]]])
B + Cである(1,3)DIM 2(1,1,10)は、それが薄暗い1 broadcastable(1vs1ことになっているので、和、3vs1、1vs10に対3.薄暗いしかし、そうではないようだ。
>>> b+c
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: shape mismatch: objects cannot be broadcast to a single shape
説明はcertainely明白です...しかし、私を助けてください
ありがとうございます!私は '〜からnumpy輸入*'を知って、私はそれを明確にするために使用しましたが、あなたはまさにこれは避けられるべきです。 –