Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента-Python(Питон)

Python 3

# -*- coding: utf-8 -*-

##матрица
matrix = [[1, 7, 1, 0, 6, 0],
          [4, 5, 1, 5, 6, 4],
          [1, 1, 1, 1, 1, 1],
          [1, 7, 6, 6, 1, 4],
          [1, 7, 6, 5, 6, 4],
          [1, 7, 6, 5, 6, 4]]

i = 0
j = 0
kolvo_stolbzovravnih0 = 0
## конец массива
end = len(matrix)
## перебираем весь массив
while (j != end):
    ## есди пересмотрели весь столбец, начинаем новый
    if (i == end):
        j = j + 1
        i = 0
    ## если просмотрели всю матрицу то выходим из цикла
    if (j == end):
        break
    ## нашли 0 увеличиваем кол-во найденых столбцов с нулем, на 1
    if (matrix[i][j] == 0):
        i = 0
        j = j + 1
        kolvo_stolbzovravnih0 = kolvo_stolbzovravnih0 + 1
        continue
    i = i + 1
## выводим ответ
print('Количество столбцов которые не содержат 0 =', len(matrix) - kolvo_stolbzovravnih0)
import numpy as np
random_matrix=np.matrix(np.random.randint(100, size=(int(input('rows=')), int(input('cols=')))))
i=0
n=0
for _ in range(random_matrix.shape[1]-1):
    i +=1
    if np.count_nonzero(random_matrix[:, i])<random_matrix.shape[0]:
        n += 1
print(random_matrix.shape[1]-n)
import numpy as np
random_matrix=np.matrix(np.random.randint(100, size=(int(input('rows=')), int(input('cols=')))))
i=0
n=0
print(np.nonzero(np.prod(random_matrix, axis = 0))[0].shape[0])

Python 2

# -*- coding: utf-8 -*-
 
n = raw_input("Input size: ")
 
 
x,y = 0,0
## вспомогательная и главная матрица
tmpm = []
matrix = []
 
while x < int(n):
    y=0
    while y < int(n):
        ## подсказка для ввода
        info_to_app = str(x)+","+str(y)
        ## добавляем в вспомогательную матрицу, введенное с клавиатуры число
        tmpm.append(int(raw_input(info_to_app)))
        y=y+1
    ## добавляем в главную матрицу вспомогательную матрицу и очищаем вспомогательную матрицу
    matrix.append(tmpm)
    tmpm=[]
    x = x+1
 
 
##отображаем полученную матрицу
for i in  matrix:
    print i
 
##матрица
##matrix = [[1,3,1,4,0,7],
##          [4,5,1,5,6,4],
##          [1,3,1,0,1,3],
##          [1,7,6,4,1,4],
##          [1,7,6,5,6,4],
##          [1,7,6,4,6,4]]
 
kolvo_stolbzovravnih0 = 0
## хранение номеров столбцов где есть ноль
tmp=[]
 
i=0
 
while i < len(matrix):
    j=0
    while j < len(matrix[i]):
        if(matrix[i][j]==0):
            ## если такого номера столбца нет, то добавляем его
            if(tmp.count(matrix[i].index(matrix[i][j]))==0):
                ## добавляем номер столбца с 0
                tmp.append(matrix[i].index(matrix[i][j]))
            ## убирается 0, что бы не мешал с этом же ряду
            matrix[i][j] = -1
        j=j+1
    i=i+1
 
 
 
print "-"*10
print len(matrix) - len(tmp)

Leave a Comment