Różnica między "shape=1", a "shape=[0]"

Różnica między "shape=1", a "shape=[0]"
Gjorni
  • Rejestracja: dni
  • Ostatnio: dni
0

Dlaczego w wyniku działania poniższego kodu:

Kopiuj
import numpy as np

data = np.empty(shape=1)
data = np.append(data, np.array([1, 2, 3]))
data = data.astype(int)

print(data)

...otrzymuję:

Kopiuj
[2147483647          1          2          3]

...a gdy zmienię shape=1 na shape=[0] otrzymuję:

Kopiuj
[1 2 3]

?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
4

Nie rozumiem pytania. Podanie 1 oznacza że tworzysz macierz 1 wymiarową 1 elementową i wrzuca ci tam losową wartość. Robisz append więc dokleja do niej te twoje 3 wartości, w sumie masz losową wartość i te 3 doklejone. Podanie [0] specyfikuje kształt macierzy jako 1 wymiarową 0 elementową. Robisz append więc dokleja 3 wartości.
W czym problem?

Gjorni
  • Rejestracja: dni
  • Ostatnio: dni
0

Aaah... Myślałem, że numpy.empty(shape=1) tworzy mi pustą macierz jednowymiarową...

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.