Форум программистов, компьютерный форум, киберфорум
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. Показов 8189. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru