Массив шүүх /Filter/
Массив шүүх гэдэг нь одоо байгаа массиваас зарим элементүүдийг ялган авч шинэ массив үүсгэхийг filter буюу шүүх гэнэ.
NumPy-д массивыг шүүхдээ индекс жагсаалтад логик утга ашигладаг.
Хэрэв индексийн утга үнэн буюу True
бол массивыг шүүнэ, харин индексийн утга худал буюу False
байвал тухайн элементийг шүүсэн массиваас хасна.
Жишээ нь
import numpy as np
mas = np.array([54, 31, 71, 23])
x = mas[[True, Flase, False, True]]
print (x)
Үр дүн
[54 23]
Дээрх жишээ нь [54 23]
-г буцаана.
Яагаад гэвэл шинэ нь үнэн утгатай утгуудыг агуулдаг.Дээрх жишээнд 0 болон 3 индекс дээр үнэн буюу True
утгыг агуулж байна.
Шүүсэн массив үүсгэх
Дээрх жишээ бид үнэн ба худалыг хатуу кодчилж өгсөн.
Харин шүүлтийн нийтлэг хэрэглээ нь нөхцөл шалгаж массив үүсэх юм.
Жишээ нь
Өгөгдсөн массивыг шүүж 31 эрс их утгуудыг авч шинэ массив үүсгэе.
import numpy as np
mas = np.array([54, 31, 71, 23])
# Шинэ хоосон массив үүсгэж байна.
filter_mas = []
# Маs массивын элемент бүрийг давтаж байна
for element in mas:
# элемент бүр нь 31 ээс их байна уу шалгаж байна.
if element > 31:
# их утга бүрийг filter_mas массивд нэмж байна.
filter_mas.append(True)
else:
filter_mas.append(False)
newmas = mas[fliter_mas]
print (filter_mas)
print (newmas)
Үр дүн
[False, False, True, True]
[54 71]
Жишээ нь
Өгөгдсөн массивыг шүүж тэгш тоог хэвлэж үзье.
import numpy as np
mas = np.array([1, 2, 3, 4, 5, 6, 7])
filter_mas = []
for element in mas:
if element % 2 == 0:
filter_mas.append(True)
else:
filter_mas.append(False)
newmas = mas[fliter_mas]
print (filter_mas)
print (newmas)
Үр дүн
[False, True, False, True, False, True, False]
[2 4 6]
Массиваас шууд шүүлтүүр үүсгэх
Дээр жишээ нь NumPy-д нийтлэг хэрэглэгддэг. Үүнийг шийдвэрлэх хялбар сайхан аргыг NumPy бидэнд санал болгодог юм. Энэ нь нөхцөл, давталт, хувьсагчийн оронд массивыг шууд орлуулах юм.
Жишээ нь
Өгөгдсөн массивыг шүүж 31 эрс их утгуудыг авч шинэ массив үүсгэе.
import numpy as np
mas = np.array([54, 31, 71, 23])
filter_mas = mas > 31
newmas = mas[fliter_mas]
print (filter_mas)
print (newmas)
Үр дүн
[False, False, True, True]
[54 71]
Жишээ нь
Өгөгдсөн массивыг шүүж тэгш тоог хэвлэж үзье.
import numpy as np
mas = np.array([1, 2, 3, 4, 5, 6, 7])
filter_mas = mas % 2 == 0
print (filter_mas)
print (newmas)
Үр дүн
[False, True, False, True, False, True, False]
[2 4 6]