Как заменить элемент в матрице python
Перейти к содержимому

Как заменить элемент в матрице python

  • автор:

Замена элементов на нули в матрице

Ребята, прошу помочь в решении данной задачи: «Задана действительная матрица размером n*m. Написать программу, позволяющую заменить все элементы, наименьшие в строке, на нули». В матрицах довольно плох, заранее благодарю всех за ответ!

from random import randint rows = int(input('Введите количество строк: ')) cols = int(input('Введите количество столбцов: ')) matrixA = [[randint(0, 100) for j in range(cols)] for i in range(rows)] matrixB = [[randint(0, 100) for j in range(cols)] for i in range(rows)] print('Первая матрица:', matrixA) print("Вторая матрица: ", matrixB) 

Код неполный и явно требует доработок. Можно сделать без рандома.

Отслеживать

49.3k 17 17 золотых знаков 57 57 серебряных знаков 101 101 бронзовый знак

задан 13 фев 2020 в 17:18

Ivan Pavlov Ivan Pavlov

3 1 1 серебряный знак 5 5 бронзовых знаков

Как даётся матрица ?

13 фев 2020 в 17:31

На любой вкус и цвет) Условие задачи полное

13 фев 2020 в 17:35

ваши попытки, идеи? матрицы — самая основа основ, если у вас возникают с ними сложности..

13 фев 2020 в 17:43

from random import randint rows = int(input(‘Введите количество строк: ‘)) cols = int(input(‘Введите количество столбцов: ‘)) matrixA = [[randint(0, 100) for j in range(cols)] for i in range(rows)] matrixB = [[randint(0, 100) for j in range(cols)] for i in range(rows)] print(‘Первая матрица:’, matrixA) print(«Вторая матрица: «, matrixB)

13 фев 2020 в 17:48

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

from random import randint rows = int(input('Введите количество строк: ')) cols = int(input('Введите количество столбцов: ')) matrixA = [[randint(0, 100) for j in range(cols)] for i in range(rows)] matrixB = [[randint(0, 100) for j in range(cols)] for i in range(rows)] print('Первая матрица:', matrixA) print("Вторая матрица: ", matrixB) for row in range(rows): el=min(matrixA[row]) while el in matrixA[row]: ind=matrixA[row].index(el) matrixA[row][ind]=0 el=min(matrixB[row]) while el in matrixB[row]: ind=matrixB[row].index(el) matrixB[row][ind]=0 print('\nПеределанные матрицы\n') print('Первая матрица:', matrixA) print("Вторая матрица: ", matrixB) 

Отслеживать

ответ дан 14 фев 2020 в 5:39

11.9k 2 2 золотых знака 11 11 серебряных знаков 28 28 бронзовых знаков

Как заменить элементы в массиве NumPy (3 примера)

Вы можете использовать следующие методы для замены элементов в массиве NumPy:

Метод 1: заменить элементы, равные некоторому значению

#replace all elements equal to 8 with a new value of 20 my_array[my_array == 8 ] = 20 

Способ 2: замена элементов на основе одного условия

#replace all elements greater than 8 with a new value of 20 my_array[my_array > 8 ] = 20 

Способ 3: замена элементов на основе нескольких условий

#replace all elements greater than 8 or less than 6 with a new value of 20 my_array[(my_array > 8 ) | (my_array < 6 )] = 20 

В следующих примерах показано, как использовать каждый метод на практике со следующим массивом NumPy:

import numpy as np #create array my_array = np.array([4, 5, 5, 7, 8, 8, 9, 12]) #view array print(my_array) [ 4 5 5 7 8 8 9 12] 

Метод 1: заменить элементы, равные некоторому значению

В следующем коде показано, как заменить все элементы массива NumPy, равные 8 , новым значением 20 :

#replace all elements equal to 8 with 20 my_array[my_array == 8 ] = 20 #view updated array print(my_array) [ 4 5 5 7 20 20 9 12] 

Способ 2: замена элементов на основе одного условия

В следующем коде показано, как заменить все элементы в массиве NumPy больше 8 новым значением 20 :

#replace all elements greater than 8 with 20 my_array[my_array > 8 ] = 20 #view updated array print(my_array) [ 4 5 5 7 8 8 20 20] 

Способ 3: замена элементов на основе нескольких условий

В следующем коде показано, как заменить все элементы в массиве NumPy больше 8 или меньше 6 новым значением 20 :

#replace all elements greater than 8 or less than 6 with a new value of 20 my_array[(my_array > 8 ) | (my_array < 6 )] = 20 #view updated array print(my_array) [20 20 20 7 8 8 20 20] 

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в NumPy:

Замена элемента в матрице.Нормальный вывод на экран

Дана матрица,каждый элемент вычисляется по формуле: math.sin(n*(i+1)+m*(j+1))). если значение элемента отрицательное то нужно заменить его на 0. Как это сделать?(где у меня прокол) И как в данном случае вывести эту матрицу столбцом, а не кучей списков? Существует ли универсальный метод?

import math a = [[0]*4 for i in range(4)] m=4 n=4 for i in range(m): for j in range(n): a[i][j]=(math.sin(n*(i+1)+m*(j+1))) if(a[i][j]<0): a[i][j]==0 print(a) 

Отслеживать
20.2k 6 6 золотых знаков 38 38 серебряных знаков 81 81 бронзовый знак
задан 17 янв 2017 в 20:00
Awesome Man Awesome Man
694 3 3 золотых знака 15 15 серебряных знаков 31 31 бронзовый знак

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Там, где вы проверяете условие на отрицательное значение, надо использовать знак присваивания = , а не равенства == . a[i][j]==0 данное выражение просто возвращает истину или ложь, которое никуда не присваивается, поэтому у вас отрицательные значения не заменялись, но и исключений не возникало.

Что вы подразумеваете под универсальным методом вывода?

import math a = [[0]*4 for i in range(4)] m=4 n=4 for i in range(m): for j in range(n): a[i][j]=(math.sin(n*(i+1)+m*(j+1))) if(a[i][j] <0): a[i][j] = 0 # Тут надо присвоить значение print(*a, sep='\n') # Вывод по строкам в виде списков print() # Вывод просто в виде матрицы for i in a: print((len(i) * '<:.2f>').format(*i)) # ':.2f' - число знаков после запятой менять тут 

Отслеживать
ответ дан 17 янв 2017 в 20:28
user207200 user207200
5,257 8 8 золотых знаков 24 24 серебряных знака 41 41 бронзовый знак

В выводе в виде матрицы лучше форматирование вместо str использовать типа def str(val): return '<:5.4f>'.format(val)

17 янв 2017 в 20:38
Что такое print(*a, sep='\n') . ( Sep= )?
17 янв 2017 в 21:01

Универсальный метод вывода ,ето, кагбе шаблон кода который можна применить везде, и не расписывать все индивидуально.

17 янв 2017 в 21:04

@AwesomeMan, sep - параметр, в котором задается строка-разделитель между элеметами выводимой последовательности. По поводу применения шаблона "везде" - если вы подразумеваете вывод матриц, то оберните кусок кода в функцию.

как изменять элементы матрицы в numpy

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • python
  • numpy
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.4.30.8420

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *