กวดวิชาNumPy

NumPy HOME แนะนำ NumPy NumPy เริ่มต้นใช้งาน NumPy การสร้างอาร์เรย์ การจัดทำดัชนี NumPy Array NumPy Array Slicing ประเภทข้อมูล NumPy NumPy Copy เทียบกับ View NumPy Array Shape การปรับรูปร่าง NumPy Array NumPy Array Iterating NumPy Array เข้าร่วม NumPy Array Split ค้นหาอาร์เรย์ NumPy NumPy Array Sort ตัวกรองอาร์เรย์ NumPy

NumPyสุ่ม

สุ่มอินโทร การกระจายข้อมูล การเรียงสับเปลี่ยนแบบสุ่ม โมดูล Seaborn การกระจายแบบปกติ การกระจายทวินาม จำหน่ายปลา กระจายสม่ำเสมอ การกระจายโลจิสติกส์ การกระจายพหุนาม การกระจายแบบเอกซ์โพเนนเชียล จิสแควร์ ดิสทริบิวชั่น การกระจาย Rayleigh พาเรโต้ ดิสทริบิวชั่น การกระจาย Zipf

NumPy ufunc

ufunc Intro ufunc สร้างฟังก์ชัน ufunc เลขคณิตอย่างง่าย ufunc การปัดเศษทศนิยม ufunc บันทึก ufunc ผลรวม ufunc ผลิตภัณฑ์ ufunc ความแตกต่าง ufunc ค้นหา LCM ufunc กำลังหา GCD ufunc ตรีโกณมิติ ufunc ไฮเปอร์โบลิก ufunc Set Operations

แบบทดสอบ/แบบฝึกหัด

แบบทดสอบ NumPy แบบฝึกหัด NumPy

อาร์เรย์ตัวกรอง NumPy


การกรองอาร์เรย์

การนำองค์ประกอบบางอย่างออกจากอาร์เรย์ที่มีอยู่และการสร้างอาร์เรย์ใหม่นั้นเรียกว่าการกรอง

ใน NumPy คุณกรองอาร์เรย์โดยใช้รายการดัชนีบูลี

รายการดัชนีบูลีนคือรายการบูลีนที่สอดคล้องกับดัชนีในอาร์เรย์

หากค่าที่ดัชนีคือTrueองค์ประกอบนั้นอยู่ในอาร์เรย์ที่กรอง ถ้าค่าที่ดัชนีนั้นเป็น Falseองค์ประกอบนั้นไม่รวมอยู่ในอาร์เรย์ที่กรอง

ตัวอย่าง

สร้างอาร์เรย์จากองค์ประกอบในดัชนี 0 และ 2:

import numpy as np

arr = np.array([41, 42, 43, 44])

x = [True, False, True, False]

newarr = arr[x]

print(newarr)

ตัวอย่างข้างต้นจะกลับมา[41, 43]ทำไม?

เนื่องจากตัวกรองใหม่มีเฉพาะค่าที่อาร์เรย์ตัวกรองมีค่า Trueในกรณีนี้ ดัชนี 0 และ 2


การสร้างอาร์เรย์ตัวกรอง

ในตัวอย่างข้างต้น เราได้ฮาร์ดโค้ด the True และFalseค่า แต่การใช้งานทั่วไปคือการสร้างอาร์เรย์ตัวกรองตามเงื่อนไข

ตัวอย่าง

สร้างอาร์เรย์ตัวกรองที่จะส่งคืนเฉพาะค่าที่สูงกว่า 42:

import numpy as np

arr = np.array([41, 42, 43, 44])

# Create an empty list
filter_arr = []

# go through each element in arr
for element in arr:
  # if the element is higher than 42, set the value to True, otherwise False:
  if element > 42:
    filter_arr.append(True)
  else:
    filter_arr.append(False)

newarr = arr[filter_arr]

print(filter_arr)
print(newarr)


ตัวอย่าง

สร้างอาร์เรย์ตัวกรองที่จะส่งคืนเฉพาะองค์ประกอบจากอาร์เรย์ดั้งเดิม:

import numpy as np

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

# Create an empty list
filter_arr = []

# go through each element in arr
for element in arr:
  # if the element is completely divisble by 2, set the value to True, otherwise False
  if element % 2 == 0:
    filter_arr.append(True)
  else:
    filter_arr.append(False)

newarr = arr[filter_arr]

print(filter_arr)
print(newarr)

การสร้างตัวกรองโดยตรงจากอาร์เรย์

ตัวอย่างข้างต้นเป็นงานทั่วไปใน NumPy และ NumPy เป็นวิธีที่ดีในการจัดการกับมัน

เราสามารถแทนที่อาร์เรย์โดยตรงแทนตัวแปร iterable ในเงื่อนไขของเรา และมันจะทำงานได้ตามที่เราคาดหวัง

ตัวอย่าง

สร้างอาร์เรย์ตัวกรองที่จะส่งคืนเฉพาะค่าที่สูงกว่า 42:

import numpy as np

arr = np.array([41, 42, 43, 44])

filter_arr = arr > 42

newarr = arr[filter_arr]

print(filter_arr)
print(newarr)

ตัวอย่าง

สร้างอาร์เรย์ตัวกรองที่จะส่งคืนเฉพาะองค์ประกอบจากอาร์เรย์ดั้งเดิม:

import numpy as np

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

filter_arr = arr % 2 == 0

newarr = arr[filter_arr]

print(filter_arr)
print(newarr)