Để tính căn bậc hai của mảng chứa các giá trị âm, chúng ta sử dụng np.emath.sqrt() (cũng được gọi qua np.scimath.sqrt()) trong NumPy. Phương thức này trả về căn bậc hai của từng phần tử. Với các phần tử âm, kết quả sẽ là số phức.
Các bước thực hiện
1. Nhập thư viện
import numpy as np
2. Tạo mảng chứa giá trị dương và âm
arr = np.array([1, -4, -9, 16, -25, 36])
3. Hiển thị mảng
print("Mảng của chúng ta...\n", arr)
4. Kiểm tra số chiều
print("\nSố chiều của mảng...\n", arr.ndim)
5. Lấy kiểu dữ liệu
print("\nKiểu dữ liệu của đối tượng mảng...\n", arr.dtype)
6. Lấy hình dạng
print("\nHình dạng của đối tượng mảng...\n", arr.shape)
7. Tính căn bậc hai với np.emath.sqrt()
print("\nKết quả...\n", np.emath.sqrt(arr))
Ví dụ hoàn chỉnh
import numpy as np
# Tạo mảng NumPy
arr = np.array([1, -4, -9, 16, -25, 36])
# Hiển thị mảng
print("Mảng của chúng ta...\n", arr)
# Kiểm tra số chiều
print("\nSố chiều của mảng...\n", arr.ndim)
# Lấy kiểu dữ liệu
print("\nKiểu dữ liệu của đối tượng mảng...\n", arr.dtype)
# Lấy hình dạng
print("\nHình dạng của đối tượng mảng...\n", arr.shape)
# Tính căn bậc hai với scimath.sqrt()
print("\nKết quả...\n", np.emath.sqrt(arr))
Kết quả đầu ra
Mảng của chúng ta...
[ 1 -4 -9 16 -25 36]
Số chiều của mảng...
1
Kiểu dữ liệu của đối tượng mảng...
int64
Hình dạng của đối tượng mảng...
(6,)
Kết quả...
[1.+0.j 0.+2.j 0.+3.j 4.+0.j 0.+5.j 6.+0.j]
Giải thích kết quả:
- √1 = 1.0 + 0.0j
- √(-4) = 0.0 + 2.0j
- √(-9) = 0.0 + 3.0j
- √16 = 4.0 + 0.0j
- √(-25) = 0.0 + 5.0j
- √36 = 6.0 + 0.0j
Kết quả được trả về dưới dạng mảng số phức (complex128) để thống nhất kiểu dữ liệu, dù các giá trị dương có phần ảo bằng 0.