numpy дает индекс 1 выходит за пределы для оси 0 с размером 1 - PullRequest
0 голосов
/ 15 марта 2020

Я довольно новичок в математике в python, используя NumPy, и я не могу запустить этот код, я пытался найти решение для моей конкретной проблемы c, но не могу ничего найти это может помочь мне.

Код:

list_Of_XY_Points = {}

def Xmean():
    x = 0
    for i in list_Of_XY_Points.keys():
        x = x + i
    return x/len(list_Of_XY_Points)
def Ymean():
    y = 0
    for i in list_Of_XY_Points.keys():
        y = y + list_Of_XY_Points[i]
    return y / len(list_Of_XY_Points)
def XYmean():
    xy = 0
    for i in list_Of_XY_Points.keys():
        xy = xy + (i * list_Of_XY_Points[i])
    return xy / len(list_Of_XY_Points)
def XSQRmean():
    xSQR = 0
    for i in list_Of_XY_Points.keys():
        xSQR = xSQR + (i**2)
    return xSQR / len(list_Of_XY_Points)
def M():
    return (Xmean()*Ymean()-XYmean())/(Xmean()**2-XSQRmean())


list_Of_XY_Points[1] = 2
list_Of_XY_Points[2] = 1
list_Of_XY_Points[4] = 3

import numpy as np
from scipy.optimize import fsolve
def func(z):
    x = z[0]
    y = z[1]
    m = z[2]    
    f = Xmean()*Ymean()-XYmean()/Xmean()**2-XSQRmean()    
    return f

Я получаю ошибку:

in func
y = z[1]
IndexError: index 1 is out of bounds for axis 0 with size 1
Xmean()
Ymean()
XYmean()
XSQRmean()

- это определения, которые все возвращают значение с плавающей запятой.

Код, который вызывает удовольствие c

zGuess = np.array([1])
z = fsolve(func,zGuess)
print(z)

! ОБНОВЛЕНИЕ !: для будущих посетителей мое решение было решено следующим образом: я заменил:

def func(z):
    x = z[0]
    y = z[1]
    m = z[2]    
    f = Xmean()*Ymean()-XYmean()/Xmean()**2-XSQRmean()    
    return f
zGuess = np.array([1])
z = fsolve(func,zGuess)
print(z)

на:

from sympy import *
from fractions import Fraction
x = Fraction(str(simplify(Xmean()*Ymean()-XYmean())/(Xmean()**2-XSQRmean()))).limit_denominator(1000)
print(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...