Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - กรองจำนวนเต็มออกจากอาร์เรย์ numpy แบบ float

ในกิจกรรมการทำความสะอาดข้อมูล เราอาจต้องนำจำนวนเต็มที่อยู่ในรายการออกบ้าง ในบทความนี้เราจะมีอาร์เรย์ที่มีทั้ง float และ integer เราจะลบจำนวนเต็มออกจากอาร์เรย์และพิมพ์แค่ float

ด้วย astype

ฟังก์ชัน astype จะใช้เพื่อตรวจสอบว่าองค์ประกอบจากอาร์เรย์เป็นจำนวนเต็มหรือไม่ ตามนั้นเราจะตัดสินใจเก็บหรือลบองค์ประกอบออกจากอาร์เรย์และเก็บไว้ในชุดผลลัพธ์

ตัวอย่าง

import numpy as np
# เริ่มต้นอาร์เรย์
A_array = np.array([3.2, 5.5, 2.0, 4.1, 5])
print("Given array :\n ", A_array)
# เฉพาะจำนวนเต็ม
res = A_array[A_array != A_array.astype(int)]
# ผลลัพธ์
print("Array without integers:\n", res)

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given array :   [3.2 5.5 2. 4.1 5. ]
Array without integers:   [3.2 5.5 4.1]

ด้วย equal และ mod

ในวิธีนี้เราใช้ฟังก์ชัน mod กับแต่ละองค์ประกอบของอาร์เรย์และตรวจสอบว่าผลหารเป็นศูนย์หรือไม่ หากผลลัพธ์ไม่ใช่ศูนย์ จะถือว่าเป็น float และเก็บเป็นผลลัพธ์

ตัวอย่าง

import numpy as np
# เริ่มต้นอาร์เรย์
A_array = np.array([3.2, 5.5, 2.0, 4.1, 5])
print("Given array :\n ", A_array)
# เฉพาะจำนวนเต็ม
res = A_array[~np.equal(np.mod(A_array, 1), 0)]
# ผลลัพธ์
print("Array without integers:\n", res)

Output

การรันโค้ดข้างต้นให้ผลลัพธ์ดังนี้ -

Given array :   [3.2 5.5 2. 4.1 5. ]
Array without integers:   [3.2 5.5 4.1]