Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Tôi muốn tổng hợp một mảng 2 chiều trong Python:

Đây là những gì tôi có:

def sum1(input):
    sum = 0
    for row in range (len(input)-1):
        for col in range(len(input[0])-1):
            sum = sum + input[row][col]

    return sum


print sum1([[1, 2],[3, 4],[5, 6]])

Nó hiển thị

def sum1(input):
    return sum(map(sum, input))
4 thay vì
def sum1(input):
    return sum(map(sum, input))
5 (1+2+3+4+5+6 = 21). Sai lầm của tôi ở đâu?

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Khi được hỏi ngày 23 tháng 5 năm 2012 lúc 3:43May 23, 2012 at 3:43

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

1

Tôi nghĩ điều này tốt hơn:

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21

Đã trả lời ngày 27 tháng 11 năm 2012 lúc 6:07Nov 27, 2012 at 6:07

3

Bạn có thể viết lại chức năng đó là,

def sum1(input):
    return sum(map(sum, input))

Về cơ bản,

def sum1(input):
    return sum(map(sum, input))
6 sẽ trả lại một danh sách với các tổng trên tất cả các hàng của bạn, sau đó, hầu hết các
def sum1(input):
    return sum(map(sum, input))
7 bên ngoài sẽ thêm danh sách đó.

Example:

>>> a=[[1,2],[3,4]]
>>> sum(map(sum, a))
10

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Đã trả lời ngày 23 tháng 5 năm 2012 lúc 3:58May 23, 2012 at 3:58

Machowmachowmachow

1.0121 Huy hiệu vàng9 Huy hiệu bạc16 Huy hiệu đồng1 gold badge9 silver badges16 bronze badges

1

Đây là một giải pháp thay thế khác

In [1]: a=[[1, 2],[3, 4],[5, 6]]
In [2]: sum([sum(i) for i in a])
Out[2]: 21

Đã trả lời ngày 14 tháng 5 năm 2015 lúc 16:44May 14, 2015 at 16:44

AjayajayAjay

5.0592 Huy hiệu vàng21 Huy hiệu bạc 30 Huy hiệu Đồng2 gold badges21 silver badges30 bronze badges

0

Và giải pháp Numpy chỉ là:

import numpy as np
x = np.array([[1, 2],[3, 4],[5, 6]])

Result:

>>> b=np.sum(x)
   print(b)
21

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Đã trả lời ngày 23 tháng 5 năm 2012 lúc 3:50May 23, 2012 at 3:50

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

AkavallakavallAkavall

78.9K48 Huy hiệu vàng200 Huy hiệu bạc245 Huy hiệu Đồng48 gold badges200 silver badges245 bronze badges

3

Tốt hơn hết, hãy quên các bộ đếm chỉ mục và chỉ lặp lại các mục:

def sum1(input):
    my_sum = 0
    for row in input:
        my_sum += sum(row)
    return my_sum

print sum1([[1, 2],[3, 4],[5, 6]])

Một trong những tính năng đẹp (và thành ngữ) của Python là để nó thực hiện việc đếm cho bạn.

def sum1(input):
    return sum(map(sum, input))
8 là một tích hợp và bạn không nên sử dụng tên của các bản tích hợp cho số nhận dạng của riêng bạn.

Đã trả lời ngày 23 tháng 5 năm 2012 lúc 3:59May 23, 2012 at 3:59

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

MSWMSWmsw

42K9 Huy hiệu vàng85 Huy hiệu bạc 109 Huy hiệu đồng9 gold badges85 silver badges109 bronze badges

Đây là vấn đề

for row in range (len(input)-1):
    for col in range(len(input[0])-1):

try

for row in range (len(input)):
    for col in range(len(input[0])):

Phạm vi của Python (x) đi từ 0..x-1 rồi

Phạm vi (...) Phạm vi ([Bắt đầu,] Dừng [, Bước]) -> Danh sách các số nguyên

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
0

Đã trả lời ngày 23 tháng 5 năm 2012 lúc 3:45May 23, 2012 at 3:45

DFBDFBdfb

Huy hiệu vàng 13K11 gold badge29 silver badges52 bronze badges

def sum1(input):
    return sum(map(sum, input))
9 trong Python không bao gồm yếu tố cuối cùng. Nói cách khác,
>>> a=[[1,2],[3,4]]
>>> sum(map(sum, a))
10
0 là [1, 5) hoặc [1, 4]. Vì vậy, bạn chỉ nên sử dụng
>>> a=[[1,2],[3,4]]
>>> sum(map(sum, a))
10
1 để lặp lại trên các hàng/cột.

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
1

Đã trả lời ngày 23 tháng 5 năm 2012 lúc 3:45May 23, 2012 at 3:45

DFBDFBspinlok

Huy hiệu vàng 13K116 silver badges25 bronze badges

def sum1(input):
    return sum(map(sum, input))
9 trong Python không bao gồm yếu tố cuối cùng. Nói cách khác,
>>> a=[[1,2],[3,4]]
>>> sum(map(sum, a))
10
0 là [1, 5) hoặc [1, 4]. Vì vậy, bạn chỉ nên sử dụng
>>> a=[[1,2],[3,4]]
>>> sum(map(sum, a))
10
1 để lặp lại trên các hàng/cột.

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
2

spinlokspinlok

3,48316 Huy hiệu bạc25 Huy hiệu đồngMay 23, 2012 at 3:46

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Đừng đặt -1 trong phạm vi (LEN (đầu vào) -1) Thay vào đó sử dụng:Kartik Anand

Phạm vi tự động trả về danh sách ít hơn giá trị đối số để không cần đưa ra rõ ràng -15 gold badges40 silver badges72 bronze badges

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
3

Đã trả lời ngày 23 tháng 5 năm 2012 lúc 3:46Sep 13, 2018 at 22:49

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Kartik Anandkartik AnandJ F Fitch

4.4175 Huy hiệu vàng40 Huy hiệu bạc72 Huy hiệu đồng1 silver badge3 bronze badges

Đã trả lời ngày 13 tháng 9 năm 2018 lúc 22:49

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
4

J f fitchj f fitch

1161 Huy hiệu bạc3 Huy hiệu đồngApr 1, 2018 at 20:54

1

Câu trả lời nhanh, sử dụng ...

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
5

Trong đó

>>> a=[[1,2],[3,4]]
>>> sum(map(sum, a))
10
2 là tiêu đề mảng của bạn.

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
6

Đã trả lời ngày 1 tháng 4 năm 2018 lúc 20:54Jan 21, 2019 at 14:51

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Trong Python 3.7

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
7

đầu ra

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
8

Đã trả lời ngày 21 tháng 1 năm 2019 lúc 14:51Sep 26, 2019 at 0:14

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Có vẻ như một sự đồng thuận chung là Numpy là một giải pháp phức tạp. So với các thuật toán đơn giản hơn. Nhưng vì lợi ích của câu trả lời có mặt:peyo

Đây dường như là giải pháp ưa thích:3 silver badges14 bronze badges

 >>> x=[[1, 2],[3, 4],[5, 6]]                                                   
>>> sum(sum(x,[]))                                                             
21
9

Đã trả lời ngày 26 tháng 9 năm 2019 lúc 0:14

Peyopeyo1 gold badge7 silver badges22 bronze badges

3393 Huy hiệu bạc14 Huy hiệu ĐồngAug 17, 2021 at 7:57

Sefan

def sum1(input):
    return sum(map(sum, input))
0

6911 Huy hiệu vàng7 Huy hiệu bạc22 Huy hiệu đồng

def sum1(input):
    return sum(map(sum, input))
1

Đã trả lời ngày 17 tháng 8 năm 2021 lúc 7:57

def sum1(input):
    return sum(map(sum, input))
2

So sánh tốc độApr 5 at 10:13

Phương phápFasmo

Kết quả5 bronze badges

1

def sum1(input):
    return sum(map(sum, input))
3

Đã trả lời ngày 5 tháng 4 lúc 10:13

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

Fasmofasmo

Phù hiệu bằng đồng 2157 silver badges19 bronze badges

Bạn đã gặp vấn đề với dấu ngoặc đơn tại lệnh in .... giải pháp này bây giờ sẽ tốt là giải pháp chính xác trong mã Visual StudioAug 8 at 17:12

Hướng dẫn how do you sum a 2d matrix in python? - làm thế nào để bạn tính tổng một ma trận 2d trong python?

1

Làm thế nào để bạn tổng hợp một ma trận trong Python?

Python numpy sum () Chức năng cú pháp Các phần tử mảng được sử dụng để tính tổng. Nếu trục không được cung cấp, tổng của tất cả các phần tử được trả về. Nếu trục là một bộ dữ liệu của INT, tổng của tất cả các phần tử trong các trục đã cho được trả về. Chúng tôi có thể chỉ định DTYPE để chỉ định kiểu dữ liệu đầu ra được trả về. The array elements are used to calculate the sum. If the axis is not provided, the sum of all the elements is returned. If the axis is a tuple of ints, the sum of all the elements in the given axes is returned. We can specify dtype to specify the returned output data type.

Làm thế nào để bạn tổng hợp một hàng trong một mảng 2D python?

Để tính tổng các phần tử trong mỗi hàng:..
Hai vòng sẽ được sử dụng để đi qua mảng trong đó vòng ngoài chọn một hàng và vòng bên trong biểu thị các cột có trong ma trận A ..
Tính tổng bằng cách thêm các phần tử có mặt trong một hàng ..
Hiển thị sumrow ..
Lặp lại điều này cho mỗi hàng ..

Làm cách nào để tổng hợp cột mảng 2D trong Python?

SUM (ARR, trục, DTYPE, OUT) Trả về tổng các phần tử mảng trên trục được chỉ định.Để tính tổng của tất cả các cột, đối số trục phải là 0 trong hàm sum (). returns the sum of array elements over the specified axis. To compute the sum of all columns the axis argument should be 0 in sum() function.

Làm thế nào để bạn tìm thấy tổng của một mảng 2D?

Tổng của từng phần tử của mảng 2D có thể được tính toán bằng cách đi qua ma trận và thêm các phần tử.traversing through the matrix and adding up the elements.