NumPy Array Kopya vs. View

Ang pagkakaiba sa pagitan ng kopya at ng view

Ang pangunahing pagkakaiba sa pagitan ng kopya at ng array view ay na ang kopya ay isang bagong array, habang ang view ay lamang ang view ng orihinal na array.

Ang kopya ay may datos, ang anumang pagbabago na ginawa sa kopya ay hindi magiging epekto sa orihinal na array, at ang anumang pagbabago sa orihinal na array ay hindi magiging epekto sa kopya.

Ang view ay walang data, anumang pagbabago na ginawa sa view ay makakaapekto sa orihinal na array, at anumang pagbabago sa orihinal na array ay makakaapekto sa view.

Kopya:

Halimbawa

Gawin ang kopya, baguhin ang orihinal na array, at ipakita ang dalawang array:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 61
print(arr) 
print(x)

Run Halimbawa

Ang kopya ay hindi dapat na maging kaugnay sa mga pagbabago na ginawa sa orihinal na array.

View:

Halimbawa

Buhat ng view, baguhin ang orihinal na array, at ipakita ang dalawang array:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 61
print(arr) 
print(x)

Run Halimbawa

Ang view ay dapat na maging kaugnay sa mga pagbabago na ginawa sa orihinal na array.

Gawin ang pagbabago sa view:

Halimbawa

Buhat ng view, baguhin ang view, at ipakita ang dalawang array:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31
print(arr) 
print(x)

Run Halimbawa

Ang orihinal na array ay dapat na maging kaugnay sa mga pagbabago na ginawa sa view.

Suriin kung ang array ay may data

Tulad ng nabanggit, ang kopya ay may data, habang ang view ay walang data, kung paano namin sasabihin kung paano ito sasabihin?

Bawat NumPy array ay may attribute: baseKung ang array ay may data, ang base attribute na ito ay ibibigay: Wala.

Kung hindi pa,base Ang mga attribute ay magsisimula sa orihinal na bagay.

Halimbawa

Iprintin ang halaga ng attribute base upang suriin kung ang array ay may sariling data:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
y = arr.view()
print(x.base)
print(y.base)

Run Halimbawa

Kopya ng Bunga Wala.

Tingnan ang Bunga ng Array sa Oras na Ito