Cách nhân hai danh sách trong python bằng numpy

Trong bài đăng này, chúng ta sẽ xem cách nhân hai danh sách trong Python. Chúng tôi muốn tìm sản phẩm của các phần tử danh sách tại các vị trí tương ứng

Nói một cách đơn giản, chúng ta phải thực hiện phép nhân từng phần tử. Vậy hãy bắt đầu

 

Nhân hai Danh sách trong Python bằng cách Sử dụng Vòng lặp

Một cách tiếp cận đơn giản là lặp lại cả hai danh sách, tính tích của các giá trị tại cùng một chỉ mục và nối nó vào một danh sách mới. Hãy xem một ví dụ

 

list_one = [3, 4, 5 ,6, 8, 9]
list_two = [4, 5, 1, 0, 6]

product = []
for el1, el2 in zip(list_one, list_two):
  product.append(el1*el2)
  

print("The product of two lists is: ", product)

 

đầu ra

 

The product of two lists is:  [12, 20, 5, 0, 48]

 

Trong ví dụ trên, chúng tôi lặp qua các danh sách bằng phương thức zip(). Nó nhận các iterables (danh sách) và trả về một iterator gồm các bộ dữ liệu

Ngoài ra, đảm bảo chạy vòng lặp n lần, trong đó n là độ dài của danh sách nhỏ hơn

Phương thức zip() giải quyết vấn đề đó vì bạn có thể nhận thấy rằng list_one có sáu mục và list_two có năm, nhưng danh sách sản phẩm chỉ có năm giá trị

Cách nhân hai danh sách trong python bằng numpy
Cách nhân hai danh sách trong python bằng numpy

 

Nhân hai Danh sách trong Python bằng cách Sử dụng Tính năng Hiểu Danh sách

Chúng ta cũng có thể sử dụng khả năng hiểu danh sách để thực hiện phép nhân thành phần tử. Phương pháp này nên được ưu tiên hơn phương pháp trước vì nó dễ dàng và ngắn gọn hơn. Hãy xem nào

 

list_one = [3, 4, 5 ,6, 8, 9]
list_two = [4, 5, 1, 0, 6]

product = [el1*el2 for el1, el2 in zip(list_one, list_two)] #element-wise multiplication

print("The product of two lists is: ", product)

 

đầu ra

 

The product of two lists is:  [12, 20, 5, 0, 48]

 

Hãy xem, đây là một cách tiếp cận ngắn và đơn giản

 

Nhân hai Danh sách trong Python bằng cách Sử dụng NumPy

Một phương pháp khác là sử dụng thư viện NumPy. Đầu tiên, chúng tôi chuyển đổi cả hai danh sách thành mảng NumPy hoặc ndarrays, tôi. e. , mảng1 và mảng2

Sau đó, chúng tôi nhân hai mảng giống như chúng tôi làm số, tôi. e. , mảng1*mảng2. Cuối cùng, chúng tôi chuyển đổi ndarray thành một danh sách

Tuy nhiên, độ dài của cả hai danh sách cần phải giống nhau. Nếu không, chúng tôi sẽ nhận được một lỗi. Hãy xem nào

 

import numpy as np

list_one = [3, 4, 5 ,6, 8, 9]
list_two = [4, 5, 1, 0, 6,]
n = min(len(list_one), len(list_two)) #get the minimum length

#convert to numpy arrays
arr1 = np.array(list_one)
arr2 = np.array(list_two)

product = arr1[:n]*arr2[:n] #element-wise multiplication

#convert numpy array to list
product = product.tolist()
print("The product of two lists is: ", product)

 

đầu ra

 

The product of two lists is:  [12, 20, 5, 0, 48]

 

Ở đây, chúng ta lấy độ dài của mảng nhỏ hơn và chỉ nhân số phần tử đó

NumPy là một thư viện mạnh mẽ cho các tính toán khoa học. Nó cung cấp một số phương pháp và công cụ để tạo và làm việc với mảng một cách hiệu quả

Do đó, nếu chúng ta muốn tính tích phần tử của dữ liệu lớn thì sử dụng NumPy sẽ rất hiệu quả

Cách nhân hai danh sách trong python bằng numpy
Cách nhân hai danh sách trong python bằng numpy

Marcel

này các cậu. Là tôi, Marcel, hay còn gọi là Maschi. Trên MaschiTuts, đó là tất cả về hướng dẫn. Bất kể chủ đề của bài viết là gì, mục tiêu luôn giống nhau. Cung cấp cho các bạn những hướng dẫn chuyên sâu và hữu ích nhất

Sử dụng hàm zip() để nhân hai danh sách trong Python. Nhưng tùy chọn tốt hơn nhiều là Sử dụng khả năng hiểu danh sách kết hợp với chức năng zip()

Ví dụ nhân hai danh sách trong Python

Mã ví dụ đơn giản nhân hai phần tử danh sách có độ dài bằng nhau từ một danh sách với phần tử có cùng chỉ mục trong danh sách khác

Sử dụng zip với vòng lặp

list1 = [1, 2, 3]
list2 = [4, 5, 6]

res = []

for num1, num2 in zip(list1, list2):
    res.append(num1 * num2)

print(res)

đầu ra

Cách nhân hai danh sách trong python bằng numpy

Sử dụng hiểu danh sách

list1 = [1, 2, 3]
list2 = [4, 5, 6]

res = [a * b for a, b in zip(list1, list2)]

print(res)

đầu ra. [4, 10, 18]

sử dụng np. nhân(a,b)

________số 8

đầu ra. [ 2 6 12 20]

Sử dụng

The product of two lists is:  [12, 20, 5, 0, 48]
0

foo = [1, 2, 3, 4]
bar = [1, 2, 5, 55]

l = map(lambda x, y: x * y, foo, bar)

print(list(l))

đầu ra. [1, 4, 15, 220]

Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về chủ đề nhân Python này

Ghi chú. IDE. PyCharm 2021. 3. 3 (Phiên bản cộng đồng)

cửa sổ 10

Trăn 3. 10. 1

Tất cả các Ví dụ về Python đều nằm trong Python 3, vì vậy có thể nó khác với python 2 hoặc các phiên bản nâng cấp

Cách nhân hai danh sách trong python bằng numpy

Rohit

Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật