تفاوت copy و view در numpy

تفاوت copy و view در آرایه numpy1 دقیقه مطالعه

هدیه فنولوژی به شما!

بخش قبلی: دیتاتایپ‌ها در نامپای

تفاوت اصلی بین copy و view برای یک آرایه در نامپای آن است که copy یک آرایه جدید است اما view در واقع یک view از آرایه اصلی است. کپی یک آرایه، داده‌‌‌‌‌های مختص به خود را دارد و اگر در آن تغییری ایجاد کنیم، آرایه اصلی تغییر نمی‌‌‌‌‌کند. در مقابل، view به طور اختصاصی داده‌‌‌‌‌ای ندارد و اگر در آن تغییری ایجاد کنیم، آرایه اصلی تغییر پیدا می‌‌‌‌‌کند. همچنین، هر تغییری در آرایه اصلی، ممکن است بر روی view اثرگذار باشد.

در مثال زیر، یک کپی از آرایه arr با نام x ذخیره می‌‌‌‌‌کنیم. مشاهده می‌‌‌‌‌شود که تغییر درایه‌‌‌‌‌های x، منجر به تغییر arr (آرایه اصلی) نمی‌‌‌‌‌شود:

در مثال زیر، بر خلاف کد بالا، با استفاده از view یک آرایه جدید ایجاد می‌‌‌‌‌‌شود. مشاهده می‌‌‌‌‌‌کنیم که تغییر آرایه جدید، منجر به تغییر در آرایه اصلی می‌‌‌‌‌‌گردد:

چک کردن اصالت داده‌‌‌‌‌‌‌های یک آرایه‌‌‌‌‌‌‌ی numpy

همان طور که در بالا اشاره شد، داده‌‌‌‌‌‌‌های موجود در آرایه ساخته شده به وسیله copy اصالت دارند اما داده‌‌‌‌‌‌‌های موجود در آرایه ساخته شده به وسیله‌‌‌‌‌‌‌ی view اصالت ندارند و متعلق به آرایه‌‌‌‌‌‌‌ی دیگری هستند. برای فهم اصالت داشتن یا نداشتن داده‌‌‌‌‌‌‌های یک آرایه چه کاری می‌‌‌‌‌‌‌توان انجام داد؟

تمامی آرایه‌‌‌‌‌‌‌های numpy یک اتریبیوت با نام base دارند. اگر داده‌‌‌‌‌‌‌های آرایه اصالت داشته باشند، این اتریبیوت، مقدار None دارد؛ در غیر این صورت، آرایه اصلی را نشان می‌‌‌‌‌‌‌دهد. برای فهم موضوع به قطعه کد زیر توجه کنید:

 

آموزش numpy

بخش بعدی: اتریبیوت shape در نامپای

تیم محتوایی فنولوژی
تیم محتوایی فنولوژی
گروهی از متخصصان حوزه‌های مختلف
عضویت
اطلاع از
2 دیدگاه‌ها
قدیمی‌ترین‌ها
جدیدترین‌ها
بازخورد در متن
دیدن همه دیدگاه‌ها

arr[]= 42
^
SyntaxError: invalid syntax

چرا به من این ارور میده تو پاچرام تقریبا یه ساعته دارم تغییرش میدم
راستی مرسی ازتون خیلی واضح توضیح دادین ادم لذت میبره منتهی اینجا به مشگل خوردم فقط

سلام امیر عزیز
ممنون از لطف شما. در داخل کروشه یک صفر قرار دهید تا مشکل حل بشه. موفق باشید

فنولوژی را در شبکه‌های اجتماعی دنبال کنید

©۲۰۲۰ – کلیه حقوق مادی و معنوی متعلق به فنولوژی است.