私はコピー-N-ペーストを行なったし、きれいに表示得た:あなたは4のタプルを持って
((array([[ 0.09649747, -1.8634927 ],
[-0.2773882 , -0.35475898],
[-0.08274148, -0.62700068],
[-0.04381817, -0.47721803]]),
array([[-1.31386475, 0.88462238, 0.88131804, 1.70957306],
[ 0.05003364, -0.40467741, -0.54535995, -1.54647732],
[ 0.98236743, -1.10106763, -1.18504653, -0.2056499 ]]),
array([[ 1.48614836],
[ 0.23671627],
[-1.02378514]])),
array([[-0.7129932 , 0.62524497],
[-0.16051336, -0.76883635],
[-0.23003072, 0.74505627]]))
をアレイ。それらは形、(4,2)、(3,4)、(3,1)、および(3,2)が異なる。
()をさらに注意深く見てください。これは2要素タプルです。 1つの要素は3つの配列を持つタプルです。 2番目は配列です。
Y
とAL
について教えてください。特に彼らは何ですか?タプル?配列のタプル?オブジェクトdtype配列?このタプルを生成するオブジェクトnp.divide
によって動作する可能性のあるオブジェクトを想像するのは難しいです。
In [65]: Y=np.array(Y); AL = np.array(AL)
In [66]: - (np.divide(Y, AL) - np.divide(1 - Y, 1 - AL))
Out[66]: array([[-0.5590876 , 1.77465391]])
結果は、(1,2)、配列、およびルックスです:あなたの付加価値(私は,
を追加する必要がありました)リストからアレイを作成
In [63]: L,Y,AL = 2, [[1, 0]], [[ 1.78862847, 0.43650985]]
In [64]: - (np.divide(Y, AL) - np.divide(1 - Y, 1 - AL))
...
TypeError: unsupported operand type(s) for -: 'int' and 'list'
で
あなたのarr
のようなものはありません。
時にはポスターが配列を含む配列を取得することがあります。ゼロから構築することは難しいことができます:
In [105]: np.array(arr)
...
ValueError: could not broadcast input array from shape (3,2) into shape (3)
これは、私は、このネストされたタプルにnumpyの関数を適用しようとすると、私が取得エラーの一種です。
オブジェクト配列を作成するためのより信頼性の高い方法である:
In [106]: A = np.empty(2, object)
In [107]: A[:] = arr
In [108]: A
Out[108]:
array([ (array([[ 0.09649747, -1.8634927 ],
[-0.2773882 , -0.35475898],
[-0.08274148, -0.62700068],
[-0.04381817, -0.47721803]]), array([[-1.31386475, 0.88462238, 0.88131804, 1.70957306],
[ 0.05003364, -0.40467741, -0.54535995, -1.54647732],
[ 0.98236743, -1.10106763, -1.18504653, -0.2056499 ]]), array([[ 1.48614836],
[ 0.23671627],
[-1.02378514]])),
array([[-0.7129932 , 0.62524497],
[-0.16051336, -0.76883635],
[-0.23003072, 0.74505627]])], dtype=object)
と同様に配列に内側タプルを回す:
In [109]: A[0] = np.array(A[0])
In [110]: A
Out[110]:
array([ array([ array([[ 0.09649747, -1.8634927 ],
[-0.2773882 , -0.35475898],
[-0.08274148, -0.62700068],
[-0.04381817, -0.47721803]]),
array([[-1.31386475, 0.88462238, 0.88131804, 1.70957306],
[ 0.05003364, -0.40467741, -0.54535995, -1.54647732],
[ 0.98236743, -1.10106763, -1.18504653, -0.2056499 ]]),
array([[ 1.48614836],
[ 0.23671627],
[-1.02378514]])], dtype=object),
array([[-0.7129932 , 0.62524497],
[-0.16051336, -0.76883635],
[-0.23003072, 0.74505627]])], dtype=object)
print
(表現とrepr対照的にSTR)次のように異なる場合があります。
In [111]: print(A)
[ array([ array([[ 0.09649747, -1.8634927 ],
[-0.2773882 , -0.35475898],
[-0.08274148, -0.62700068],
[-0.04381817, -0.47721803]]),
array([[-1.31386475, 0.88462238, 0.88131804, 1.70957306],
[ 0.05003364, -0.40467741, -0.54535995, -1.54647732],
[ 0.98236743, -1.10106763, -1.18504653, -0.2056499 ]]),
array([[ 1.48614836],
[ 0.23671627],
[-1.02378514]])], dtype=object)
array([[-0.7129932 , 0.62524497],
[-0.16051336, -0.76883635],
[-0.23003072, 0.74505627]])]
サンプルに()
マーキングはそれがタプルであり、リストやオブジェクト配列ではないことを強く示唆しています。
アレイのリストまたはタプルは、あるバージョンのconcatenate
(hstack、vstack、stack)で「フラット」配列に変換できますが、ここではそうではありません。
この出力を生成したコードで更新できますか? – PseudoAj
問題は配列 ''キーワード ''ではなく配列のタプルがあるということでしょう。 – Julien
im to new py。ここに更新があります – DragonKnight