'numpy .ndarray' объект не имеет атрибута 'vek1' - PullRequest
0 голосов
/ 12 января 2020

Каждый раз, когда я запускаю эту программу, я получаю сообщение об ошибке: AttributeError: 'numpy .ndarray' объект не имеет атрибута 'vek1'

Но почему и как я могу решить эту проблему проблема? Спасибо за помощь.

Первый (main.py):

import os
os.getcwd()
import loaddata as ld
import symmetryvalues as sv
import centerofforce as cof
import numpy as np
import plotvalues as pv

"""
Load Data
"""
dataList = ld.loadData()

index = 1
data =dataList[index]

forceLeft = data.iloc[:,62:72].astype('float64').dropna()
forceRight = data.iloc[:,86:96].astype('float64').dropna()

vek1 = np.asarray([data.iloc[:, i].mean() for i in range(0, 5)])
vek2 = np.asarray([data.iloc[:, i].mean() for i in range(5, 10)])

xCoF, yCoF = cof.calcCoF(forceDataLeft = forceLeft, forceDataRight = forceRight)
pv.plotCoFAnimationpl(xCoF, yCoF, marker='*')

#%%
df = dataList[13].to_numpy()
print(df)
result = sv.symmetryRatio(df.vek1, df.vek2)

Второй (symbryvalues.py):

def rowPass(data):
    for row in data:
        print(symmetryRatio(row))
        #print(self.symmetryIndex(row))
        #print("Important",self.symmetryRatio(data))
    return True

def symmetryRatio(L, R):
    result = L/R
    return result

def symmetryIndex(L, R):
    res = ((L-R)/(0.5*(L+R)))*100
    return res

def gaitAsymmetry(L, R):
    r = 0
    return r

def symmetryAngle(L, R):
    solution = 0
    return solution

РЕДАКТИРОВАТЬ:

Это мой пример CSV - Данные с пятью строками (но я также могу иметь данные с 100 или более строк):

1.00,0.80,0.40,0.20, 0,50,1,20,90,0,30,0,20,34

1,10,0,85,0.50,0.21,0.59,1.30,0.95,0.40,0.21,0.42

0,90,0,90,45,0,23, 0,50,1,10,1,00,0,35,0,23,3,3

1,05,0,70,0,40,08,8,5,57,1,25,0,80,30,0,28,0,38

0,95,0,75,0,45,0,30, 0.60,1.15,0.85,0.35,0.30,0.42

vek1 должно обозначать первые пять значений каждой строки, а vek2 - последние 5 значений каждой строки. План таков: я хочу рассчитать (в main.py) среднее значение каждого столбца (то есть то, что я пробовал). Тогда у меня есть десять значений. Первые пять значений записываются в одном векторе (vek1), а последние пять значений записываются также в одном векторе (vek2). Затем я хочу использовать метод symbryRatio (L, R) из сайта symbryvalues.py, чтобы разделить vec1 на vec2.

Надеюсь, теперь все стало понятнее.

РЕДАКТИРОВАТЬ

С:

df1 = pd.DataFrame({'vek1': vek1})
df2 = pd.DataFrame({'vek2': vek2})
result = sv.symmetryRatio(df1.vek1, df2.vek2)

Я получаю вывод:

The result is: 0    0.833333
1    0.888889
2    1.294118
3    1.000000
4    1.445026

Как я могу сформировать 0, 1, 2, 3, 4 на конкретные c имен?

...