Hướng dẫn dùng np.where pandas python

Mô-đun NumPy cung cấp một hàm numpy.where () để chọn các phần tử dựa trên một điều kiện. Nó trả về các phần tử được chọn từ a hoặc b tùy thuộc vào điều kiện.

Nội dung chính Show

  • 1. Ví dụ nhanh về Python NumPy trong đó Hàm
  • 2. Cú pháp của NumPy where ()
  • 2.1 Các tham số của where ()
  • 2.2 Giá trị trả về của where ()
  • 3. Cách sử dụng hàm NumPy where ()
  • 3.1 Sử dụng NumPy where () với Điều kiện duy nhất
  • 4. Sử dụng hàm where () Với Mảng 2- D
  • 5. Sử dụng NumPy where () không có biểu thức điều kiện
  • 6. Sử dụng numpy.where () với Nhiều điều kiện
  • 7. Kết luận
  • Bạn cũng có thể thích
  • Người giới thiệu

Ví dụ: nếu tất cả các đối số -> điều kiện, a & b được chuyển vào numpy.where () thì nó sẽ trả về các phần tử được chọn từ a & b tùy thuộc vào các giá trị trong mảng bool được tạo bởi điều kiện.

Các bài viết liên quan:

Nếu chỉ cung cấp điều kiện, thì hàm này là viết tắt của hàm np.asarray (condition) .nonzero (). Mặc dù nonzero nên được ưu tiên trực tiếp, vì nó hoạt động chính xác cho các lớp con.

Cú pháp:

numpy.where(condition[, x, y])  

Tham số:

Đây là các tham số sau trong hàm numpy.where ():

  1. condition: array_like, bool

Nếu tham số này được đặt thành True, hãy mang lại x, nếu không, hãy mang lại cho y.

  1. x, y: array_like:

Tham số này xác định các giá trị để chọn. X, y và điều kiện cần phải được phát sóng thành một số hình dạng.

Return:

Hàm này trả về mảng có các phần tử từ x trong đó điều kiện là Đúng và các phần tử từ y ở nơi khác.

Ví dụ 1: np.where ()

import numpy as np  
a=np.arange(12)  
b=np.where(a<6,a,5*a)  
b  

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng ‘a’ bằng hàm np.arange ().
  • Chúng ta đã khai báo biến ‘b’ và gán giá trị trả về của hàm np.where ().
  • Chúng tôi đã chuyển mảng ‘a’ trong hàm.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của b.

Trong đầu ra, các giá trị từ 0 đến 5 được giữ nguyên theo điều kiện và các giá trị khác đã được nhân với 5.

Output:

Hướng dẫn dùng np.where pandas python

Ví dụ 2: Đối với mảng nhiều chiều

import numpy as np  
a=np.arange(12)  
b=np.where([[True, False], [True, True]],[[1, 2], [3, 4]],[[9, 8], [7, 6]])  
b  

Output:

Ví dụ 3: Phát x, y và điều kiện

import numpy as np  
x, y = np.ogrid[:3, :4]  
a=np.where(x > y, x, 10 + y)  
a  

Output:

Trong đoạn code trên

  • Chúng tôi đã tạo một mảng ‘a’ bằng hàm np.arange ().
  • Chúng tôi đã khai báo biến ‘b’ và gán giá trị trả về của hàm np.where ().
  • Chúng ta đã chuyển một mảng nhiều chiều gồm boolean dưới dạng điều kiện và x và y dưới dạng mảng số nguyên.
  • Cuối cùng, chúng tôi đã cố gắng in giá trị của b.

Trong đầu ra, giá trị x đã được so sánh với giá trị y nếu nó thỏa mãn điều kiện, thì nó sẽ được in ra giá trị x, ngược lại, nó sẽ in ra giá trị y, giá trị này đã được chuyển làm đối số trong hàm where ().

Ví dụ 4: Truyền giá trị cụ thể

x=np.array([[0,1,2],[0,2,5],[0,4,8]])  
y=np.where(x<4,x,-2)  
y  

Output:

Trong Python NumPy, hàm where () được sử dụng để trả về các chỉ số của các phần tử trong mảng đầu vào thỏa mãn điều kiện đã cho. Sử dụng chức năng này để chọn các phần tử từ hai chuỗi khác nhau dựa trên một điều kiện trên một mảng NumPy khác nhau. Nếu chúng ta đang chuyển cả 3 đối số tới numpy.where (). Sau đó, tất cả 3 mảng numpy phải có cùng độ dài nếu không nó sẽ nâng cao Value Error.

Trong bài viết này, tôi sẽ giải thích Python NumPy where() bằng cách sử dụng cú pháp, tham số và cách sử dụng nó để kiểm tra các điều kiện trên một mảng và lấy một mảng dựa trên các điều kiện trên một mảng khác.

  • 1. Ví dụ nhanh về Python NumPy trong đó Hàm
  • 2. Cú pháp của NumPy where ()
    • 2.1 Các tham số của where ()
    • 2.2 Giá trị trả về của where ()
  • 3. Cách sử dụng hàm NumPy where ()
    • 3.1 Sử dụng NumPy where () với Điều kiện duy nhất
  • 4. Sử dụng hàm where () Với Mảng 2- D
  • 5. Sử dụng NumPy where () không có biểu thức điều kiện
  • 6. Sử dụng numpy.where () với Nhiều điều kiện
  • 7. Kết luận
    • Bạn cũng có thể thích
    • Người giới thiệu

1. Ví dụ nhanh về Python NumPy trong đó Hàm

Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách sử dụng hàm where () trong Python NumPy.


# Below are the quick examples

# Example 1: Use numpy.where() with 1 Dimensional Arrays
arr1 = np.where(arr > 17)

# Example 2: Get the specified resultant array
arr2 = np.where(arr > 17, 1, 3)

# Example 3: Get some of resultant array as it is
arr2 = np.where(arr > 17, 5, arr)

# Example 4: Use numpy.where() function
arr2 = np.where(arr <17, -1, 100)

# Example 5: ndarray without using np.where()
arr = np.array([[12,14,17,19],[13,16,24,27]])
arr2 = arr < 17

# Example 6: Use numpy.where() to multiple conditions
arr2 = np.where((arr > 14) & (arr < 24), -2, 150)

# Example 7: Use bool value 
arr2 = (arr > 14) & (arr < 24)

2. Cú pháp của NumPy where ()

Sau đây là cú pháp của hàm where () NumPy.


# Syntax of where()
numpy.where(condition, [x, y, ])

2.1 Các tham số của where ()

Sau đây là các tham số của NumPy where ()

  • condition -Khi Đúng thì nhường x, ngược lại thì nhường y.
  • x,y – Giá trị để lựa chọn. x, y và điều kiện cần phải được phát sóng thành một số hình dạng.

2.2 Giá trị trả về của where ()

  • Nó trả về một mảng nếu cả x và y đều được chỉ định, mảng đầu ra chứa các phần tử của x trong đó điều kiện là Đúng và các phần tử của y trong đó điều kiện là sai.
  • Nó trả về một bộ chỉ số nếu một điều kiện duy nhất được đưa ra, các chỉ số trong đó điều kiện là Đúng.

3. Cách sử dụng hàm NumPy where ()

Python NumPy where () được sử dụng để tạo một mảng mới từ mảng hiện có dựa trên các điều kiện. Nó trả về các chỉ số của mảng mà mỗi điều kiện là True.

3.1 Sử dụng NumPy where () với Điều kiện duy nhất

Sử dụng where() chúng ta có thể chuyển đổi mảng này sang mảng khác dựa trên một số điều kiện. Hãy tạo mảng NumPy bằng cách sử dụng numpy.array().


import numpy as np

# Create a numpy array
arr = np.array([[12,14,17,19,24,27,35,38]])

# Use numpy.where() with 1 Dimensional Arrays
arr1 = np.where(arr > 17)
print(arr1)

# Output
# (array([0, 0, 0, 0, 0], dtype=int64), array([3, 4, 5, 6, 7], dtype=int64))

Tại đây, bạn có thể quan sát tuple đã được trả lại. Như tôi đã đề cập ở trên rằng khi chuyển điều kiện duy nhất vào where (), nó sẽ trả về một bộ chỉ số.

Bạn có thể sử dụng cùng một biểu thức điều kiện (arr > 17) nhưng chỉ định rằng mảng kết quả phải có giá trị là 1 điều kiện ở đâu true và giá trị của 3 điều kiện ở đâu false. Kết quả là một mảng có giá trị là 3 ở đâu arr ít hơn 17 và giá trị của 1 nếu không thì.


# Get the specified resultant array
arr2 = np.where(arr > 17, 1, 3)
print(arr2)

# Output
# [[3 3 3 1 1 1 1 1]]

Để tạo một mảng sang một mảng khác bằng cách sử dụng np.where(arr > 17,5,arr) để giữ giá trị trong mảng ban đầu cho một trong các kết quả. Ở đây, Bạn giữ nguyên giá trị arr nếu điều kiện giải quyết thành false.


# Get some of resultant array as it is
arr2 = np.where(arr > 17, 5, arr)
print(arr2)

# Output
[12 14 17  5  5  5  5  5]]

4. Sử dụng hàm where () Với Mảng 2- D

numpy.where() trả lại ndarray cái nào là x nếu điều kiện là Truey nếu False. x, y và điều kiện cần phải được quảng bá với cùng một hình dạng.


import numpy as np
 
# Create a numpy array
arr = np.array([[12,14,17,19],[13,16,24,27]])

# Use numpy.where() function
arr2 = np.where(arr <17, -1, 100)
print(arr2)

# Output :
# [[ -1  -1 100 100]
# [ -1  -1 100 100]]

Ngoài ra, chúng ta có thể trả về giá trị boolean của ndarray có thể nhận được bằng một biểu thức điều kiện bao gồm ndarray không sử dụng np.where().


# ndarray without using np.where()
arr = np.array([[12,14,17,19],[13,16,24,27]])
arr2 = arr < 17
print(arr2)

# Output
# [[ True  True False False]
# [ True  True False False]]

5. Sử dụng NumPy where () không có biểu thức điều kiện

Trong tất cả các ví dụ trước, chúng ta đã chuyển một biểu thức điều kiện làm đối số đầu tiên, biểu thức này sẽ được đánh giá thành một mảng bool. Nhưng chúng ta cũng có thể chuyển một mảng bool thay vì nó,

numpy.where()tạo ra mảng bool và cho mọi Truenó mang lại mảng phần tử tương ứng xvà cho mọi Falsenó mang lại phần tử tương ứng từ mảng y. Vì vậy, nó trả về một mảng các mục từ x điều kiện ở đâu True và các yếu tố từ y ở nơi khác.


import numpy as np

# Use numpy.where() without condition
arr2 = np.where([True, False, True], [12,14,17], [13,16,24])
print(arr2)

# Output
# [12 16 17]

6. Sử dụng numpy.where () với Nhiều điều kiện

Bạn có thể dùng numpy.where() nhiều điều kiện, trong đó mỗi biểu thức điều kiện được bao gồm trong ()& hoặc | được sử dụng, quá trình xử lý được áp dụng cho nhiều điều kiện.


# Use numpy.where() to multiple conditions
arr2 = np.where((arr > 14) & (arr < 24), -2, 150)
print(arr2)

# Output
# [[150 150  -2  -2]
#  [150  -2 150 150]]

Nhận giá trị boolean ndarray có thể thu được bằng nhiều biểu thức điều kiện bao gồm ndarray không sử dụng np.where().


# Use bool value 
arr2 = (arr > 14) & (arr < 24)
print(arr2)

# Output
# [[False False  True  True]
# [False  True False False]]

7. Kết luận

Trong bài viết này, tôi đã giải thích cách sử dụng Python numpy.where() cách lấy các chỉ số phần tử từ mảng khi đáp ứng điều kiện. Cũng đã học cách sử dụng cả đối số đơn cũng như nhiều đối số với hàm này.

Học vui vẻ !!

Bạn cũng có thể thích

Người giới thiệu