>>> print np.array([np.arange(10)]).transpose()
[[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]]
Bu ekstra adımları atlamak zorunda kalmadan dikey bir ortam elde etmenin bir yolu var mı?Nümerik dikey bir garip nasıl yaratılır?
>>> print np.array([np.arange(10)]).transpose()
[[0]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]]
Bu ekstra adımları atlamak zorunda kalmadan dikey bir ortam elde etmenin bir yolu var mı?Nümerik dikey bir garip nasıl yaratılır?
Sen np.newaxis kullanabilirsiniz:
>>> np.arange(10)[:, np.newaxis]
array([[0],
[1],
[2],
[3],
[4],
[5],
[6],
[7],
[8],
[9]])
np.newaxis
None
için sadece bir takma olduğunu ve ağırlıklı olarak okunabilmesi için numpy
geliştiriciler tarafından eklenmiştir. Bu nedenle, np.arange(10)[:, None]
, yukarıdaki çözüm ile aynı kesin sonucu üretecektir.
sadece eklemek için, 'np.newaxis' yerine' None'ı döndürmek aynı etkiye sahip ... –
Neden bunun nedenini açıklayan bazı belgelere işaret edebilir misiniz? –
@SaulloCastro, ben bunu bilmiyordum. – Akavall
: np.array aksine
np.arange(10).reshape((10, 1))
, yeniden şekillendirmek dizideki veriyi kopyalamaz bir hafif bir operasyondur.
Bir yan notta, ilk boyutun boyutunu belirtmek zorunda kalmamak için' what whatres '(-1, 1)' de yapabilirsiniz. –
Halihazırda gereksiz adımlar atıyorsunuz - np.array() 've' [] 'gereksiz çünkü np.arange' bir sayı dizisi döndürüyor. Yapabilecekleriniz np.arange (10) .transpose() ' – Brionius
@Brionius, 1d dizisinden' transpose 'hiçbir şey yapmaz. OP, diziye ek bir boyut eklemek için [[] 'yi kullanır ve aynı sonucu elde etmek için daha verimli bir yol olup olmadığını sormaktadır. –
@BiRico Ah, haklısın, benim hatam. – Brionius