Hướng dẫn how to compare elements in an array python - cách so sánh các phần tử trong mảng python

Tôi có hai mảng

a = [ab,bc,cd]
b = [bc,ab,cd]

Tôi muốn so sánh từng phần tử của A với từng phần tử của B và sau đó tăng

counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
1 nếu chúng khớp, khác
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
2 và hiển thị
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
3

counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter

Tôi đang nhận được kết quả kỳ lạ, tôi mới lập trình và giúp đỡ được đánh giá cao.

Xin lỗi vì đã sao chép lỗi dán

Hỏi ngày 21 tháng 10 năm 2015 lúc 15:53Oct 21, 2015 at 15:53

Hướng dẫn how to compare elements in an array python - cách so sánh các phần tử trong mảng python

IlluminatiilluminatiIlluminati

5552 Huy hiệu vàng7 Huy hiệu bạc33 Huy hiệu đồng2 gold badges7 silver badges33 bronze badges

6

Điều kiện

counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
4 của bạn giống như
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
5 của bạn, đó có lẽ là lý do tại sao nó không hoạt động cho bạn. Trong thực tế, bạn thậm chí không cần một điều kiện ở đó; Nó chỉ là một
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
6 vì bạn muốn bắt mọi thứ không phù hợp với
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
5.

Điều đó nói rằng, cách này đẹp hơn nhiều:

from itertools import product
counter = sum(1 if x==y else -1 for x, y in product(a, b))

Đã trả lời ngày 21 tháng 10 năm 2015 lúc 15:56Oct 21, 2015 at 15:56

Tzamantzamantzaman

45,7K11 Huy hiệu vàng89 Huy hiệu bạc113 Huy hiệu đồng11 gold badges89 silver badges113 bronze badges

0

Bạn có thể sử dụng các bộ:

a = ['ab','bc','cd']
b = ['bc','ab','cd']

print(len(set(a).intersection(set(b))))

3

Đã trả lời ngày 21 tháng 10 năm 2015 lúc 15:59Oct 21, 2015 at 15:59

LetzerwilleletzerwilleLetzerWille

5.2114 Huy hiệu vàng22 Huy hiệu bạc26 Huy hiệu đồng4 gold badges22 silver badges26 bronze badges

a = ['ab','bc','cd']
b = ['bc','ab','cd']

counter = 0
for i in a:
    for j in b:
        if i == j:
            counter += 1
        else:
            counter -= 1
print counter

Đã trả lời ngày 21 tháng 10 năm 2015 lúc 16:12Oct 21, 2015 at 16:12

FomalhautfomalhautFomalhaut

7.6418 Huy hiệu vàng37 Huy hiệu bạc83 Huy hiệu đồng8 gold badges37 silver badges83 bronze badges

Chỉ là một sự thay thế ngắn và nhanh:

sum(2*b.count(x) - len(b) for x in a)

Đã trả lời ngày 21 tháng 10 năm 2015 lúc 17:09Oct 21, 2015 at 17:09

Stefan Pochmannstefan PochmannStefan Pochmann

26.5k8 Huy hiệu vàng43 Huy hiệu bạc104 Huy hiệu đồng8 gold badges43 silver badges104 bronze badges

Để so sánh từng phần tử của một mảng numpy

counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
8 với vô hướng
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
9broadcasting feature with the array as one operand and the scalar as another operand. For example, the greater comparison
from itertools import product
counter = sum(1 if x==y else -1 for x, y in product(a, b))
0 results in an array of Boolean values from the element-wise comparisons.

array > scalar
array >= scalar 
array < scalar 
array <= scalar 
array == scalar  

# yields a new Boolean array [True/False ... True/False]

Xây dựng vấn đề

Cho là:

  • Một mảng numpy
    counter=0
    for i in a:
     for j in b: 
       if a[i-1] == b[j-1]:
          counter = counter + 1
       elif a[i-1] != b[j-1]:
          counter = counter - 1
      print counter
    
    8.
  • Giá trị vô hướng
    counter=0
    for i in a:
     for j in b: 
       if a[i-1] == b[j-1]:
          counter = counter + 1
       elif a[i-1] != b[j-1]:
          counter = counter - 1
      print counter
    
    9.

❓ & nbsp; Cách so sánh từng phần tử của mảng numpy

counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
8 với vô hướng
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
9 bằng cách sử dụng bất kỳ phần lớn hơn (>), bằng nhau (> =), nhỏ hơn (nhỏ hơn (compare each element of the NumPy array
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
8 against the scalar
counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
9 using any of the greater (>), greater equal (>=), smaller (<), smaller equal (<=), or equal (==) operators?

Kết quả mong muốn là một mảng vô cùng của các giá trị boolean lên tiếng vang lên các kết quả so sánh phần tử khôn ngoan.Boolean values respresenting the element-wise comparison results.

Ví dụ, hãy xem xét mã giả sau đây về những gì bạn đang cố gắng thực hiện:

# Given
arr = [1 10 100]
x = 3

# Desired
res = [1>x 10>x 100>x] = [False True True]

Giải pháp: Phát sóng

Bạn có thể sử dụng tất cả các toán tử so sánh có giá trị vô hướng trên một mảng numpy:

  • Lớn hơn:
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    0
    :
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    0
  • Lớn hơn hoặc bằng:
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    6
    :
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    6
  • Nhỏ hơn:
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    7
    :
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    7
  • Nhỏ hơn hoặc bằng:
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    8
    :
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    8
  • Bằng:
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    9
    :
    from itertools import product
    counter = sum(1 if x==y else -1 for x, y in product(a, b))
    
    9

Numpy sẽ tự động đưa cả hai toán hạng vào cùng một hình dạng (một tính năng có tên là Phát thanh truyền hình).broadcasting“).

import numpy as np


# Given
arr = np.array([1, 10, 100])
x = 3

# Greater:
print(arr > x)
# [False  True  True]

# Greater or equal:
print(arr >= x)
# [False  True  True]

# Smaller:
print(arr < x)
# [ True False False]

# Smaller or equal:
print(arr <= x)
# [ True False False]

# Equal:
print(arr == x)
# [False False False]

Việc so sánh được thực hiện theo yếu tố khôn ngoan và kết quả của hoạt động là một mảng boolean như mong muốn.

Câu đố khoa học dữ liệu

import numpy as np

# popular instagram accounts
# (millions followers)
inst = [232, #"@instagram"
        133, #"@selenagomez"
        59, #"@victoriassecret"
        120, #"@cristiano"
        111, #"@beyonce"
        76] #"@nike"

inst = np.array(inst)
superstars = inst > 100
print(superstars[0])
print(superstars[2])

Bài tập: Đầu ra của câu đố này là gì?: What is the output of this puzzle?

Bạn có thể giải câu đố này trên ứng dụng đào tạo dựa trên câu đố tương tác của chúng tôi và theo dõi các kỹ năng Python của bạn:

Hướng dẫn how to compare elements in an array python - cách so sánh các phần tử trong mảng python

Numpy là một thư viện Python phổ biến cho khoa học dữ liệu tập trung vào đại số tuyến tính.

Tính năng Numpy tiện dụng sau đây sẽ chứng minh hữu ích trong suốt sự nghiệp của bạn. Bạn có thể sử dụng các toán tử so sánh trực tiếp trên các mảng numpy. Kết quả là một mảng numpy có kích thước bằng nhau với các giá trị Boolean. Mỗi boolean cho biết liệu so sánh có đánh giá là

a = ['ab','bc','cd']
b = ['bc','ab','cd']

print(len(set(a).intersection(set(b))))

3
0 cho giá trị tương ứng trong mảng ban đầu hay không.

Câu đố tạo ra một danh sách các số nguyên. Mỗi số nguyên đại diện cho số lượng người theo dõi của các tài khoản Instagram phổ biến (tính bằng hàng triệu).

  • Đầu tiên, chúng tôi chuyển đổi danh sách này thành một mảng numpy.
  • Thứ hai, chúng tôi xác định cho mỗi tài khoản liệu nó có hơn 100 triệu người theo dõi hay không.

Chúng tôi in giá trị boolean thứ nhất và thứ ba của mảng kết quả. Kết quả là

a = ['ab','bc','cd']
b = ['bc','ab','cd']

print(len(set(a).intersection(set(b))))

3
0 cho
a = ['ab','bc','cd']
b = ['bc','ab','cd']

print(len(set(a).intersection(set(b))))

3
2 với 232 triệu người theo dõi và
a = ['ab','bc','cd']
b = ['bc','ab','cd']

print(len(set(a).intersection(set(b))))

3
3 cho
a = ['ab','bc','cd']
b = ['bc','ab','cd']

print(len(set(a).intersection(set(b))))

3
4 với 59 triệu người theo dõi.

Bạn có phải là một lập trình viên chính không? Kiểm tra kỹ năng của bạn bây giờ!
Test your skills now!

Video liên quan

So sánh mảng numpy #12

Lập trình viên hài hước

counter=0
for i in a:
 for j in b: 
   if a[i-1] == b[j-1]:
      counter = counter + 1
   elif a[i-1] != b[j-1]:
      counter = counter - 1
  print counter
0

Hướng dẫn how to compare elements in an array python - cách so sánh các phần tử trong mảng python

Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.

Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer (Nostarch 2020), đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.

Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.

Làm thế nào để so sánh hai mảng trong Python?

Phương thức numpy.array_equiv (A1, A2) lấy mảng A1 và A2 làm đầu vào và trả về đúng nếu cả hai mảng hình dạng và các phần tử đều giống nhau; Nếu không, trả về sai. Chúng ta có thể chuyển cả hai mảng cho phương thức numpy.Array_equiv () để so sánh chúng trong Python.

Làm thế nào để tham chiếu các phần tử trong một mảng trong Python?

Cách tham chiếu các phần tử trong một mảng trong Python. 1 Python3. mảng = [4, 6, 3, 9, 2] first_element = mảng [0] thứ hai_element = mảng [1] thứ ba_element = mảng [2] fourth_element = mảng [3] thứ năm 3 Python3. 4 Python3. 5 Python3. Nhiều mặt hàng hơn

Làm thế nào để kiểm tra xem hai mảng có giống nhau trong Numpy không?

Phương thức numpy.all () trả về true nếu tất cả các phần tử mảng đầu vào dọc theo trục đã cho là đúng;Nếu không, nó trả về sai.Phương thức này trả về đúng nếu cả hai mảng đều trống hoặc một mảng có độ dài là 1. và cũng sẽ gây ra lỗi nếu hình dạng của cả hai mảng không giống nhau;Đó là lý do tại sao các phương pháp được đề cập ở trên phải được ưu tiên.

Làm thế nào để so sánh hai danh sách?

Thuật toán rất đơn giản: zip (hoặc trong trường hợp này, IZIP hiệu quả hơn) hai danh sách, sau đó so sánh phần tử của chúng theo phần tử.Hàm Eumerate đưa ra vị trí chỉ số mà chúng ta có thể trả về nếu sự khác biệt được tìm thấy nếu chúng ta thoát khỏi vòng lặp mà không có bất kỳ lợi nhuận nào, một trong hai khả năng có thể xảy ra: hai danh sách là giống hệt nhau.