Questo Python:ValueError: l'impostazione di un elemento di un array con una sequenza
import numpy as p
def firstfunction():
UnFilteredDuringExSummaryOfMeansArray = []
MeanOutputHeader=['TestID','ConditionName','FilterType','RRMean','HRMean','dZdtMaxVoltageMean','BZMean','ZXMean'
,'LVETMean','Z0Mean','StrokeVolumeMean','CardiacOutputMean','VelocityIndexMean']
dataMatrix = BeatByBeatMatrixOfMatrices[column]
roughTrimmedMatrix = p.array(dataMatrix[1:,1:17])
trimmedMatrix = p.array(roughTrimmedMatrix,dtype=p.float64) #ERROR THROWN HERE
myMeans = p.mean(trimmedMatrix,axis=0,dtype=p.float64)
conditionMeansArray = [TestID,testCondition,'UnfilteredBefore',myMeans[3], myMeans[4], myMeans[6], myMeans[9]
, myMeans[10], myMeans[11], myMeans[12], myMeans[13], myMeans[14], myMeans[15]]
UnFilteredDuringExSummaryOfMeansArray.append(conditionMeansArray)
secondfunction(UnFilteredDuringExSummaryOfMeansArray)
return
def secondfunction(UnFilteredDuringExSummaryOfMeansArray):
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
return
firstfunction()
Mandate questo messaggio di errore:
File "mypath\mypythonscript.py", line 3484, in secondfunction
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
ValueError: setting an array element with a sequence.
Qualcuno può farmi vedere cosa fare per risolvere il problema nel codice spezzato sopra in modo che smetta di lanciare un messaggio di errore?
EDIT: Ho fatto un comando di stampa per ottenere il contenuto della matrice, e questo è quello che stampata:
UnFilteredDuringExSummaryOfMeansArray è:
[['TestID', 'ConditionName', 'FilterType', 'RRMean', 'HRMean', 'dZdtMaxVoltageMean', 'BZMean', 'ZXMean', 'LVETMean', 'Z0Mean', 'StrokeVolumeMean', 'CardiacOutputMean', 'VelocityIndexMean'],
[u'HF101710', 'PreEx10SecondsBEFORE', 'UnfilteredBefore', 0.90670000000000006, 66.257731979420001, 1.8305673000000002, 0.11750000000000001, 0.15120546389880002, 0.26870546389879996, 27.628261216480002, 86.944190346160013, 5.767261352345999, 0.066259118585869997],
[u'HF101710', '25W10SecondsBEFORE', 'UnfilteredBefore', 0.68478571428571422, 87.727887206978565, 2.2965444125714285, 0.099642857142857144, 0.14952476549885715, 0.24916762264164286, 27.010483303721429, 103.5237336525, 9.0682762747642869, 0.085022572648242867],
[u'HF101710', '50W10SecondsBEFORE', 'UnfilteredBefore', 0.54188235294117659, 110.74841107829413, 2.6719262705882354, 0.077705882352917643, 0.15051306356552943, 0.2282189459185294, 26.768787504858825, 111.22827075238826, 12.329456404418824, 0.099814258468417641],
[u'HF101710', '75W10SecondsBEFORE', 'UnfilteredBefore', 0.4561904761904762, 131.52996981880955, 3.1818159523809522, 0.074714285714290493, 0.13459344175047619, 0.20930772746485715, 26.391156337028569, 123.27387909873812, 16.214243779323812, 0.1205685359981619]]
Sembra una Matrice a 5 righe per 13 colonne, sebbene il numero di righe sia variabile quando vengono eseguiti dati diversi attraverso lo script. Con gli stessi dati che sto aggiungendo in questo.
EDIT 2: Tuttavia, lo script sta gettando un errore. Quindi non penso che la tua idea spieghi il problema che sta accadendo qui. Grazie comunque. Altre idee?
EDIT 3:
proposito, se sostituisco questa linea problema di codice:
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
con questo, invece:
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray)[1:,3]
Poi quella sezione della lo script funziona bene senza generare un errore, ma successivamente questa riga di codice su tutta la linea:
p.ylim(.5*RRDuringArray.min(),1.5*RRDuringArray.max())
Lanci questo errore:
File "mypath\mypythonscript.py", line 3631, in CreateSummaryGraphics
p.ylim(.5*RRDuringArray.min(),1.5*RRDuringArray.max())
TypeError: cannot perform reduce with flexible type
Così si può vedere che ho bisogno di specificare il tipo di dati al fine di essere in grado di utilizzare ylim in matplotlib, ma tuttavia specificare i dati tipo sta lanciando il messaggio di errore che ha avviato questo post.
Grazie, ma non penso che sia la risposta. Ho aggiunto il contenuto della matrice quando lancia l'errore sopra. E mi sembra che sia una scatola quando la incollo nel blocco note e la esaminiamo riga per riga. Altre idee? – MedicalMath
La tua modifica sembra aver risolto il mio problema. Avevo bisogno di impostare il dtype = object. Grazie mille. – MedicalMath
Questa domanda è stata completamente risposta. – MedicalMath