NumPy Array နှင့် View ကို ကူးယူသည် ။
Copy နှင့် View ကွာခြားချက်
ကော်ပီတစ်ခုနှင့် array တစ်ခု၏မြင်ကွင်းတစ်ခုအကြား အဓိကကွာခြားချက်မှာ ကော်ပီသည် ခင်းကျင်းအသစ်တစ်ခုဖြစ်ပြီး မြင်ကွင်းသည် မူရင်းအခင်းအကျင်း၏မြင်ကွင်းတစ်ခုသာဖြစ်သည်။
မိတ္တူ သည် ဒေတာ ကို ပိုင်ဆိုင်ထားပြီး မိတ္တူ တွင် ပြုလုပ်ထားသော ပြောင်းလဲမှုမှန်သမျှသည် မူရင်း ခင်းကျင်းအပေါ် သက်ရောက်မှုရှိမည်မဟုတ်ပါ၊ မူရင်း ခင်းကျင်းမှုတွင် ပြုလုပ်ထားသော ပြောင်းလဲမှုမှန်သမျှသည် မိတ္တူကို ထိခိုက်စေမည်မဟုတ်ပါ။
မြင်ကွင်း သည် ဒေတာ ကို မပိုင်ဆိုင်ပါ ၊ မြင်ကွင်းအတွက် ပြုလုပ်ထားသော ပြောင်းလဲမှုမှန်သမျှသည် မူရင်း ခင်းကျင်းအပေါ် သက်ရောက်မှုရှိမည်ဖြစ်ပြီး မူရင်း ခင်းကျင်းတွင် ပြုလုပ်ထားသော ပြောင်းလဲမှုမှန်သမျှသည် မြင်ကွင်းကို အကျိုးသက်ရောက်မည်ဖြစ်ပါသည်။
မိတ္တူ-
ဥပမာ
မိတ္တူကူးပါ၊ မူရင်း array ကို ပြောင်းလဲပြီး array နှစ်ခုလုံးကို ပြသပါ-
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 42
print(arr)
print(x)
မူရင်းအခင်းအကျင်းတွင် ပြုလုပ်ထားသော အပြောင်းအလဲများကြောင့် မိတ္တူကို ထိခိုက်မှုမဖြစ်သင့်ပါ။
ကြည့်ရှုရန်-
ဥပမာ
မြင်ကွင်းတစ်ခုဖန်တီးပါ၊ မူရင်း array ကိုပြောင်းလဲပြီး array နှစ်ခုလုံးကိုပြသပါ-
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 42
print(arr)
print(x)
မူရင်း array တွင် ပြုလုပ်ထားသော အပြောင်းအလဲများကြောင့် မြင်ကွင်းကို ထိခိုက်သင့်သည်။
မြင်ကွင်းတွင် ပြောင်းလဲမှုများ ပြုလုပ်ပါ-
ဥပမာ
မြင်ကွင်းတစ်ခုဖန်တီးပါ၊ မြင်ကွင်းကိုပြောင်းလဲပါ၊ နှင့် ခင်းကျင်းနှစ်ခုလုံးကိုပြသပါ-
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31
print(arr)
print(x)
မြင်ကွင်းအတွက် ပြုလုပ်ထားသော အပြောင်းအလဲများကြောင့် မူရင်း ခင်းကျင်းမှုကို သက်ရောက်မှုရှိသင့်သည်။
Array သည် ၎င်း၏ Data ပိုင်ဆိုင်ခြင်း ရှိ၊ မရှိ စစ်ဆေးပါ။
အထက်တွင်ဖော်ပြခဲ့သည့်အတိုင်း၊ မိတ္တူ များသည် ဒေတာ ကို ပိုင်ဆိုင်ထားပြီး အမြင်များသည် ဒေတာ ကို ပိုင်ဆိုင်ခြင်း မရှိသော်လည်း ၎င်းကို ကျွန်ုပ်တို့ မည်သို့စစ်ဆေးနိုင်မည်နည်း။
NumPy array တစ်ခုစီတွင် array သည် data ပိုင်ဆိုင်ပါက base
return ပြန် မည့် attribute ရှိပါသည်။None
မဟုတ်ပါက၊ base
attribute သည် မူရင်းအရာဝတ္တုကို ရည်ညွှန်းသည်။
ဥပမာ
array တစ်ခုသည် ၎င်း၏ဒေတာကို ပိုင်ဆိုင်ခြင်း ရှိ၊ မရှိ စစ်ဆေးရန် အခြေခံ attribute ၏ တန်ဖိုးကို ပရင့်ထုတ်ပါ-
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
။
မြင်ကွင်းသည် မူရင်းအခင်းကို ပြန်ပေးသည်။