Ben bu şekilde bir dizi resize
kullanmaya çalıştı:Numpy, dizinin kendi verileri yok mu?
a = np.array([1,2,3,4,5,6], dtype=np.uint8)
a.resize(4,2)
print a
ve çıkış Tamam (Ben hiçbir hata olduğu anlamına geliyordu)!. Bu kodu çalıştırdığınızda Ama:
a = np.array([1,2,3,4,5,6], dtype=np.uint8).reshape(2,3)
a.resize(4,2)
print a
o söyleyerek, bir hata yol açtı,
ValueError: cannot resize this array: it does not own its data
Sorum: neden reshape
dizinin sahipliğini uygulandıktan sonra değiştirilir? Mülkiyet kime verilir! reshape
, yeni bir bellek oluşturmaz ve aynı dizi belleğinde çalışmasını gerçekleştirir! Peki sahiplik neden değişecek?
np.reshape ve ndarray.resize belgelerini okudum ama nedenini anlayamıyorum. this post'u okudum. resize
yöntemini uygulamadan önce her zaman ndarray.flags
'u kontrol edebilirim.
'a = np.array ([1,2,3,4,5,6], d_type = np.uint8)' bu iki farklı sonuç verir: np.resize (a, (4,2)) 'a.resize (4,2), a 'yazdırın. Bu, –
@ CTZhu'nun iyi bir yönü değildir. İyi bir nokta, şekli iki farklı şekilde artırır. – Daniel
Başka bir yol, dizinin 'shape' özniteliğini değiştirmek. (ör., a.shape = (2, 3) ') Bu, yeni bir görünüm oluşturmadan yerinde yeniden şekillendirir. –