Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 26.12.2014
Сообщений: 79

Ошибка TypeError: can't multiply sequence by non-int of type 'numpy.float64' в Python 3.6

11.03.2019, 03:58. Показов 8260. Ответов 2

Студворк — интернет-сервис помощи студентам
Написал код, который должен найти параметры для функции, аппроксимирующей (fitting) смоделированные данные:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from scipy.optimize import curve_fit
import numpy as np
import random
import matplotlib.pyplot as plt
 
def f(w,a,b):
    return a*w+b
 
def main():
    N = 100
    step = 500/N
    w = []
    for i in range(N):
        w.append(step*(i+1))
    w = np.array(w)
    I = []
    for j in w:
        I.append(2*j+1000+random.randint(1,50))
    I = np.array(I)
    print('length of I = ', len(I))
    start = (3, 1100)
    popt, pcov = curve_fit(f,w,I,p0=start)
    print('popt = ', popt)
    print('pcov = ', pcov)
    
    print('f = ',f(w,*popt))
    print('type of f : ', type(f))
    print('type of f(w,*popt) = ', type(f(w,*popt)))
    print('I = ',I)
    print('type of I : ', type(I))
    
    residuals = f(w,*popt) - I
    w_fit = np.linspace(step,500,200)
    w_fit = list(w_fit)
    I_fit = f(w_fit,*popt)
    fig1, ax1 = plt.subplots()
    plt.scatter(w,I,s=1)
    plt.plot(w_fit,I_fit,'r')
 
    fig2, ax2 = plt.subplots()
    plt.scatter(w,residuals,s=2)
    plt.show()
 
main()
Привожу полный вывод при запуске программы (в конце вывода ошибка TypeError):
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
length of I =  100
popt =  [   2.01156676 1024.65939394]
pcov =  [[ 1.04433263e-04 -2.63693989e-02]
 [-2.63693989e-02  8.83374863e+00]]
f =  [1034.71722772 1044.77506151 1054.83289529 1064.89072907 1074.94856286
 1085.00639664 1095.06423042 1105.12206421 1115.17989799 1125.23773177
 1135.29556556 1145.35339934 1155.41123312 1165.46906691 1175.52690069
 1185.58473447 1195.64256826 1205.70040204 1215.75823582 1225.81606961
 1235.87390339 1245.93173717 1255.98957096 1266.04740474 1276.10523852
 1286.16307231 1296.22090609 1306.27873987 1316.33657366 1326.39440744
 1336.45224122 1346.51007501 1356.56790879 1366.62574257 1376.68357636
 1386.74141014 1396.79924392 1406.85707771 1416.91491149 1426.97274527
 1437.03057906 1447.08841284 1457.14624662 1467.20408041 1477.26191419
 1487.31974797 1497.37758176 1507.43541554 1517.49324932 1527.55108311
 1537.60891689 1547.66675067 1557.72458446 1567.78241824 1577.84025202
 1587.89808581 1597.95591959 1608.01375337 1618.07158716 1628.12942094
 1638.18725472 1648.24508851 1658.30292229 1668.36075607 1678.41858986
 1688.47642364 1698.53425742 1708.59209121 1718.64992499 1728.70775877
 1738.76559256 1748.82342634 1758.88126013 1768.93909391 1778.99692769
 1789.05476148 1799.11259526 1809.17042904 1819.22826283 1829.28609661
 1839.34393039 1849.40176418 1859.45959796 1869.51743174 1879.57526553
 1889.63309931 1899.69093309 1909.74876688 1919.80660066 1929.86443444
 1939.92226823 1949.98010201 1960.03793579 1970.09576958 1980.15360336
 1990.21143714 2000.26927093 2010.32710471 2020.38493849 2030.44277228]
type of f :  <class 'function'>
type of f(w,*popt) =  <class 'numpy.ndarray'>
I =  [1031. 1064. 1071. 1061. 1087. 1109. 1087. 1089. 1107. 1106. 1131. 1163.
 1162. 1145. 1184. 1190. 1183. 1215. 1198. 1242. 1223. 1239. 1252. 1278.
 1288. 1263. 1299. 1302. 1316. 1309. 1334. 1367. 1331. 1386. 1400. 1382.
 1412. 1381. 1423. 1447. 1419. 1426. 1457. 1485. 1463. 1482. 1513. 1522.
 1523. 1517. 1554. 1546. 1574. 1568. 1563. 1595. 1620. 1618. 1633. 1604.
 1652. 1637. 1646. 1642. 1673. 1703. 1715. 1712. 1702. 1701. 1723. 1766.
 1739. 1784. 1764. 1793. 1798. 1785. 1808. 1810. 1815. 1866. 1867. 1879.
 1856. 1907. 1915. 1902. 1929. 1920. 1931. 1956. 1971. 1980. 1979. 2008.
 2001. 2006. 2032. 2046.]
type of I :  <class 'numpy.ndarray'>
Traceback (most recent call last):
  File "C:/test_linear.py", line 44, in <module>
    main()
  File "C:/test_linear.py", line 35, in main
    I_fit = f(w_fit,*popt)
  File "C:/test_linear.py", line 7, in f
    return a*w+b
TypeError: can't multiply sequence by non-int of type 'numpy.float64'
Не могу понять, в чём конкретно ошибка? Подскажите, пожалуйста.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2019, 03:58
Ответы с готовыми решениями:

Ошибка TypeError: can't multiply sequence by non-int of type 'str'
https://open.kattis.com/problems/runlengthencodingrun задача Суть задачи зашифровать сообщение. В первом случае, при шифре, пишется буква...

TypeError: can't multiply sequence by non-int of type 'builtin_function_or_method'
пишу библиотеку для создание таблиц в питоне столкнулся с ошибкой Traceback (most recent call last): File...

Ошибка can't multiply sequence by non-int of type 'float'
НЕ могу понять почему в 20 строке выдает ошибку can't multiply sequence by non-int of type 'float' : n = int(input()) m =...

2
 Аватар для Andrey B
170 / 122 / 61
Регистрация: 06.02.2015
Сообщений: 300
11.03.2019, 07:19
Лучший ответ Сообщение было отмечено Рыжий Лис как решение

Решение

В функции f w у тебя массив. Ты умножаешь число (a) на массив.
Если хочешь просто запустить замени функцию на w+b

Добавлено через 8 минут
Python
1
2
def f(w,a,b):
    return a*np.array(w)+b
так вроде запустилось. О корректности молчу
1
1 / 1 / 0
Регистрация: 26.12.2014
Сообщений: 79
11.03.2019, 13:52  [ТС]
Спасибо! Я нашёл ошибку:
Python
1
w_fit = list(w_fit)
Эта строчка лишняя. Тогда вариант
Python
1
return a*w+b
работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2019, 13:52
Помогаю со студенческими работами здесь

can't multiply sequence by non-int of type 'float'
Всем доброго времени суток! Написал такой небольшой код, он вычисляет процент скидки для выбранного товара по количеству недель, которое...

ошибка "can't multiply sequence by non-int of type 'float'"
Здравствуйте, я студент первого курса. Нам задали домашнюю работу, в которой необходимо с помощью модуля math решить уравнение. Значения...

При вводе знака "-" и написании двух чисел выводит ошибку: TypeError: can't multiply sequence by non-int
what = int(input(&quot;Что делаем?: + - * / :&quot;)) if what == &quot;+&quot;: a = input(&quot;Введите 1 число: &quot;) b = input(&quot;Введите 2 число:...

Ошибка: TypeError: unsupported operand type(s) for >>: 'str' and 'int'
class Note(): def __init__(self, note, found=False): self.note = note self.found = found self.pith = ...

TypeError: unsupported operand type(s) for *: 'int' and 'type'
Подскажите что за ошибка? TypeError: unsupported operand type(s) for *: 'int' and 'type' import math a=float(input(&quot;Введите...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru