٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش NumPy Array Copy vs View

تفاوت بین Copy و View تفاوت اصلی بین یک نسخه و نمای یک آرایه در این است که کپی یک آرایه جدید است و نمای فقط نمای یک آرایه اصلی است. کپی داده ها را در اختیار دارد و هرگونه تغییر در کپی…

محمد یوسفی

13 سپتامبر 2021

تفاوت بین Copy و View

تفاوت اصلی بین یک نسخه و نمای یک آرایه در این است که کپی یک آرایه جدید است و نمای فقط نمای یک آرایه اصلی است.

کپی داده ها را در اختیار دارد و هرگونه تغییر در کپی روی آرایه اصلی تأثیر نمی گذارد و هر تغییری که در آرایه اصلی ایجاد شود بر کپی تأثیر نمی گذارد.

نمای مالکیت داده ها را ندارد و هر گونه تغییری در نمای روی آرایه اصلی تأثیر می گذارد و هرگونه تغییر در آرایه اصلی بر نمای تأثیر می گذارد.


کپی 🀄:

مثال

یک کپی تهیه کنید ، آرایه اصلی را تغییر دهید و هر دو آرایه را نمایش دهید:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 42

print(arr)
print(x)

نسخه نباید تحت تأثیر تغییرات ایجاد شده در آرایه اصلی قرار گیرد.


چشم انداز:

مثال

یک نمای ایجاد کنید ، آرایه اصلی را تغییر دهید و هر دو آرایه را نمایش دهید:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 42

print(arr)
print(x)

نمای باید تحت تأثیر تغییرات ایجاد شده در آرایه اصلی قرار گیرد.

تغییراتی در VIEW ایجاد کنید:

مثال

یک نمای ایجاد کنید ، نمای آن را تغییر دهید و هر دو آرایه را نمایش دهید:

import numpy as np

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

print(arr)
print(x)

آرایه اصلی باید تحت تأثیر تغییرات ایجاد شده در نمای قرار گیرد.


بررسی کنید آیا آرایه مالک داده های آن است یا خیر

همانطور که در بالا ذکر شد ، کپی داده ها را در اختیار دارد و View ها مالک داده ها نیستند ، اما چگونه می توانیم این را بررسی کنیم؟

هر آرایه NumPy دارای صفتی است baseکه Noneاگر آرایه داده ها را در اختیار داشته باشد باز می گردد .

در غیر این صورت ، base  ویژگی به شیء اصلی اشاره می کند.

مثال

مقدار ویژگی پایه را چاپ کنید تا بررسی کنید آیا آرایه داده های آن را دارد یا خیر:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

x = arr.copy()
y = arr.view()

print(x.base)
print(y.base)

کپی برمی گردد None.
نمای آرایه اصلی را برمی گرداند.

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها