Вопрос по python, arrays – Найти длину 2D массива Python

54

Как узнать, сколько строк и столбцов в 2d массиве?

Например,

Input = ([[1, 2], [3, 4], [5, 6]])`

должен отображаться в виде 3 строк и 2 столбцов.

Похоже, вы должны использовать массив Numpy, а не список списков wim

Ваш Ответ

5   ответов
0

1), 1 здесь ось, и это даст вам количество столбцов

27

numpy.shape.

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

Результат:

>>> x
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> np.shape(x)
(3, 2)

Первое значение в кортеже - число строк = 3; Второе значение в кортеже - количество столбцов = 2.

Спасибо, я не хотел использовать numpy для этой вещи
9

    rows = len(input)
    cols = map(len, input)  #list of column lengths
104

numrows = len(input)    # 3 rows in your example
numcols = len(input[0]) # 2 columns in your example

Предполагая, что все подсписки имеют одинаковую длину (то есть это не зубчатый массив).

До тех пор, пока это не зубчатый массив, это идеально.
@ LongBodie: ошибка в том, что вы вычитаете 1 из длины, где вы не должны '.Range(n) уже дает 0,1, ...,n-1 .
Существует более простое решение: сумма (сумма (х) для х на входе)
@Makoto Это верно. Я добавил это предположение к своему ответу.
yo, я хочу найти сумму всех элементов в этом двумерном массиве. def sum1 (вход): сумма = 0 для строки в диапазоне (len (вход) -1): для столбца в диапазоне (len (input [0]) - 1 ): sum = sum + input [row] [col] возвращенная сумма print sum1 ([[1, 2], [3, 4], [5, 6]]) Отображается 4 вместо 21 (1 + 2 + 3) + 4 + 5 + 6 = 21). Где моя ошибка? Ronaldinho Learn Coding
12

правильный способ подсчета общего количества предметов будет:

sum(len(x) for x in input)
Отлично, это было именно то, что мне было нужно! В моем случае я могу сосчитать все элементы списка до 2-й степени: sum (len (x), если isinstance (x, list), иначе 1 для x в some_list)

Похожие вопросы