0 / 0 / 0
Регистрация: 17.06.2019
Сообщений: 83

Арифметические операции над значениями в списке

22.07.2021, 15:38. Показов 2563. Ответов 9

Студворк — интернет-сервис помощи студентам
Здраствуйте! Пытаюсь реализовать арифметические операции в питоне такого плана:
Python
1
2
3
4
5
6
7
8
9
10
11
12
# y - мой список со списками (общая длина 100, длина каждого списка 260)
# z - список коэффициентов =длине списка со списками (100)
#a=[] # создается пустой массив для 'а'
#for j до конца списка списков (1:100)
  # for i до конца отдельного списка(1:260)
      #a=2.6*y(i)-120*log10(z*((i)-0.5))
 
y = np.array(y_data)
a=[]
for j in range(len(y[1])):
    for i in range(len(data_s1)):
      a=2.6*y(i)-120*log10(0.9*((i)-0.5))
Более понятным языком
1.Взять список(со значениями y[i]) из 'большого' списка(списка 'y').
2. Провести арифметические манипуляции. При этом вычитать из каждой итерации 0.5.

Когда сделал такую вот операцию, пишет ошибку:
Python
1
2
3
 
a=2.6*y(i)-120*log10(z*((i)-0.5))
TypeError: 'numpy.ndarray' object is not callable
Можно ли такое посчитать и справить данную ошибку?

Добавлено через 8 минут
т.к. коэффициент z не меняется и =0.9.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.07.2021, 15:38
Ответы с готовыми решениями:

Арифметические действия со значениями в списке
Можно ли в Python проводить какие-либо арифметические действия со значениями в списке? У меня по каким-то причинам не выполняется...

Арифметические операции над числами
Пытаюсь написать программу, производящую арифметические операции над числами, которые не входят в стандартный диапазон. Суть: каждое число...

Арифметические операции над строками
Никак не получается решить задачу. Необходимо посчитать результат арифметического выражения, содержащегося в строковой переменной. ...

9
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.07.2021, 15:43
Цитата Сообщение от Ohlamon77 Посмотреть сообщение
y(i)
В каком языке доступ по индексу делается через круглые скобки?
А, ну да - в vbs. Но vbs странный язык, Python -нет.
Здесь доступ к элементу как в Си.
0
0 / 0 / 0
Регистрация: 17.06.2019
Сообщений: 83
22.07.2021, 16:06  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
В каком языке доступ по индексу делается через круглые скобки?
А, ну да - в vbs. Но vbs странный язык, Python -нет.
Здесь доступ к элементу как в Си.
Сделал через квадратные скобки, теперь выдает такую ошибку:
Python
1
2
3
4
5
6
a=[]
for j in range(len(y[1])):
    for i in range(len(y)):
      a=2.6*y[i]-120*np.log10([0.5*([i]-0.5)])
 
TypeError: unsupported operand type(s) for -: 'list' and 'float'
Добавлено через 17 минут
Тут возникает вопрос: я же правильно общаюсь со своим списком?:
Python
1
2
3
4
a=[]
for j in range(len(y[1])):
    for i in range(len(y)):
      a=2.6*y[j,i]-120*np.log10([0.7*([j,i]-0.5)])
0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
22.07.2021, 16:08
Лучший ответ Сообщение было отмечено Ohlamon77 как решение

Решение

Ohlamon77, это?
Python
1
2
3
4
5
6
7
8
9
10
11
import numpy as np
y = np.random.rand(100, 260)
 
z = np.zeros((260, 100))
z += np.random.rand(100) # вместо random реальный массив z
z = z.T
 
di = np.zeros((100, 260))
di += np.arange(1,261) - 0.5
a = 2.6 * y - np.log10(z * di) * 120
print(a)
1
0 / 0 / 0
Регистрация: 17.06.2019
Сообщений: 83
22.07.2021, 16:31  [ТС]
Цитата Сообщение от Gdez Посмотреть сообщение
Ohlamon77, это?
В таком случае выдает ошибку:
Python
1
ValueError: operands could not be broadcast together with shapes (260,100) (259,)
Добавлено через 12 минут
Цитата Сообщение от Gdez Посмотреть сообщение
di = np.zeros((100, 260))
di += np.arange(1,261) - 0.5
А что значит di и следующее di+ , при учёте, того, что di + не используется дальше?
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
22.07.2021, 17:11
Цитата Сообщение от Garry Galler Посмотреть сообщение
В каком языке доступ по индексу делается через круглые скобки?
При желании можно:
Python
1
list.__getitem__(5)
0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
22.07.2021, 17:14
Ohlamon77,
А что значит di и следующее di+ , при учёте, того, что di + не используется дальше?
10-й оператор
По поводу ошибки - размерности массивов не совпадают
Выложи реальные массивы
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
22.07.2021, 17:42
Цитата Сообщение от Ohlamon77 Посмотреть сообщение
((i)-0.5)
В данном случае (вокруг переменной) круглые скобки абсолютно ничего не значат и Python их игнорирует.
И зачем ты их заменил на квадратные - непонятно. Здесь их просто нужно убрать, ибо лишние.

Добавлено через 4 минуты
Цитата Сообщение от Ohlamon77 Посмотреть сообщение
for j in range(len(y[1])):
    for i in range(len(y)):
Все это тоже не нужно, если ты юзаешь numpy. В numpy не имеет смысла использовать Python объекты и Python циклы.
Там все свое - родное, векторное.
Gdez тебе примерно попытался это показать.
1
0 / 0 / 0
Регистрация: 17.06.2019
Сообщений: 83
23.07.2021, 10:37  [ТС]
Цитата Сообщение от Gdez Посмотреть сообщение
10-й оператор
По поводу ошибки - размерности массивов не совпадают
Выложи реальные массивы
Очень странно, что размерности не совпадают. Я их задаю вот таким образом:
Python
1
2
3
4
5
6
y_1=len(y) # размер списка в списке
y_2=len(y[1]) # размер всего списка
# т.е. я беру размерности с самого списка со списками 'y'
di = np.zeros((y_2, y_1))
di += np.arange(1,y_1+1) - 0.5
a = 2.6 * y - np.log10(0.9 * di) * 120
0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
23.07.2021, 11:15
Ohlamon77, если запускал мой код, то этой ошибки в нем нет... Значит что то не так с входными данными...

Добавлено через 3 минуты
И по идее:
Python
1
2
3
4
5
6
7
8
y_1=len(y) # размер списка в списке
y_2=len(y[1]) # размер всего списка
# т.е. я беру размерности с самого списка со списками 'y'
#di = np.zeros((y_2, y_1))
di = np.zeros((y_1, y_2))
#di += np.arange(1,y_1+1) - 0.5
di += np.arange(1,y_2+1) - 0.5
a = 2.6 * y - np.log10(0.9 * di) * 120
Ведь y_1 == 100 и y_2 == 260 ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.07.2021, 11:15
Помогаю со студенческими работами здесь

Арифметические операции над значениями двух разных таблиц и запись итога в одну из них
Добрый день. Табл.1 Табл.1 ID X 1 X1 Табл.2

Арифметические операции над числами
Доброго вечера.Помогите-помогите,завтра нужно сдать,иначе не видать зачета( нужно написать программу,которая при запуске: 1.попросит...

Арифметические операции над матрицами
Выполнив действия над матрицами A(n,n) и B(n,n) вычислить матрицу C(n,n) по формуле C=(A-B')(3A'+B/2),где A' и B'-транспортированные...

Арифметические операции над числами
Пользователь вводит с клавиатуры два целочисленных значения: X и Y. Рассчитать сумму X+Y и вывести на экран. Результат суммы возвести в...

Арифметические операции над алиасами
Подскажите как быть с таким запросом: select var1, (select ...) as var2 from table order by (var1 - var2); ругается на то что нет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru