NumPy nusxa (copy) va ko‘rinish (view)


ULASHISH

Nusxa (copy) va ko‘rinish (view) o‘rtasidagi farq

Massiv nusxasi (copy) va ko‘rinishi (view) o‘rtasidagi asosiy farq shundaki, nusxa — yangi massiv, ko‘rinish esa asl massivning shunchaki ko‘rinishidir.

Nusxa ma’lumotlarga egalik qiladi: nusxaga kiritilgan har qanday o‘zgarish asl massivga ta’sir qilmaydi, asl massivga kiritilgan har qanday o‘zgarish ham nusxaga ta’sir qilmaydi.

Ko‘rinish ma’lumotlarga egalik qilmaydi: ko‘rinishga kiritilgan har qanday o‘zgarish asl massivga ta’sir qiladi, asl massivga kiritilgan har qanday o‘zgarish esa ko‘rinishga ta’sir qiladi.


NUSXA (COPY):

Misol

Nusxa yarating, asl massivni o‘zgartiring va ikkala massivni ham ekranga chiqaring:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.copy() arr[0] = 42 print(arr) print(x)
O‘zingiz sinab ko‘ring »

Asl massivga kiritilgan o‘zgarishlar nusxaga ta’sir QILMASLIGI kerak.


KO‘RINISH (VIEW):

Misol

Ko‘rinish yarating, asl massivni o‘zgartiring va ikkala massivni ham ekranga chiqaring:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.view() arr[0] = 42 print(arr) print(x)
O‘zingiz sinab ko‘ring »

Asl massivga kiritilgan o‘zgarishlar ko‘rinishga ta’sir QILISHI kerak.

Ko‘rinishga (VIEW) o‘zgartirish kiritish:

Misol

Ko‘rinish yarating, ko‘rinishni o‘zgartiring va ikkala massivni ham ekranga chiqaring:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.view() x[0] = 31 print(arr) print(x)
O‘zingiz sinab ko‘ring »

Ko‘rinishga kiritilgan o‘zgarishlar asl massivga ta’sir QILISHI kerak.



Massiv o‘z ma’lumotlariga egalik qilishini tekshirish

Yuqorida aytilganidek, nusxalar ma’lumotlarga egalik qiladi, ko‘rinishlar esa ma’lumotlarga egalik qilmaydi, ammo buni qanday tekshirish mumkin?

Har bir NumPy massivida base atributi bor; agar massiv ma’lumotlarga egalik qilsa, u None qaytaradi.

Aks holda base atributi asl obyektga ishora qiladi.

Misol

Massiv o‘z ma’lumotlariga egalik qilish-qilmasligini tekshirish uchun base atributining qiymatini chop eting:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) x = arr.copy() y = arr.view() print(x.base) print(y.base)
O‘zingiz sinab ko‘ring »

Nusxa None qaytaradi.
Ko‘rinish esa asl massivni qaytaradi.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!