キー違いは、MATLABのすべてであります少なくとも2つの寸法を有する。
>> size(x(:,1))
ans =
2 1
、あなたが注意として、それは超えて-エンド "インデックス付けを可能にする -
>> x(:,10)=x(:,1)
x =
1 2 3 1 0 0 0 0 0 1
4 5 6 4 0 0 0 0 0 4
を超えた。しかしnumpy
インデックス内の方法は、2Dの床せずに、寸法を削減:
In [1675]: x = np.ones((3,4),int)
In [1676]: x.shape
Out[1676]: (3, 4)
In [1677]: x[:,0].shape
Out[1677]: (3,)
つまり、列を複製したい場合は、それがまだconcatenate
の列であることを確認する必要があります。それを行う方法は数多くあります。
x[:,0][:,None]
- np.newaxis
(エイリアスNone
)の使用は便利な汎用方法です。 x[:,[0]]
、x[:,0:1]
、x[:,0].reshape(-1,1)
もその場所を持っています。
append
は、引数のリストを2に置き換えたちょうどconcatenate
です。これは、リストの追加を混乱させる模倣です。経験豊富なMATLABコーダーが読んでいるように、Pythonで書かれています。
insert
は、(Pythonでも)より複雑な関数です。両側は(技術的に、彼らはちょうどbroadcastable形状である必要はあり)同じ形状を有しているので、最後の割り当てが機能し
In [1687]: x.shape
Out[1687]: (3, 4)
In [1688]: res=np.empty((3,5),int)
In [1689]: res[:,:4] = x
In [1690]: res[:,-1] = x[:,0]
:最後に追加することは次のように行います。したがって、は、concatenate
のようなより基本的な操作で何をすべきか、またはすべきではないのかを私たちに教えてくれません。