Mã Python này:
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()
Ném thông báo lỗi này:
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.
Bất cứ ai có thể chỉ cho tôi phải làm gì để khắc phục sự cố trong mã bị hỏng ở trên để nó ngừng ném thông báo lỗi không?
EDIT: Tôi đã thực hiện một lệnh in để lấy nội dung của ma trận và đây là những gì nó được in ra:
UnFilteredDuringExSummaryOfMeansArray là:
[['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]]
Trông giống như một ma trận 5 hàng x 13 cột đối với tôi, mặc dù số lượng hàng là biến khi dữ liệu khác nhau được chạy qua tập lệnh. Với cùng dữ liệu mà tôi đang thêm vào này.
EDIT 2 : Tuy nhiên, đoạn script đang bị lỗi. Vì vậy, tôi không nghĩ rằng ý tưởng của bạn giải thích vấn đề đang xảy ra ở đây. Cảm ơn bạn mặc dù. Còn ý tưởng nào khác không?
EDIT 3:
FYI, nếu tôi thay thế dòng mã vấn đề này:
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]
với điều này thay vào đó:
RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray)[1:,3]
Sau đó, phần đó của tập lệnh hoạt động tốt mà không gây ra lỗi, nhưng sau đó dòng mã này tiếp tục xuống dòng:
p.ylim(.5*RRDuringArray.min(),1.5*RRDuringArray.max())
Ném lỗi này:
File "mypath\mypythonscript.py", line 3631, in CreateSummaryGraphics
p.ylim(.5*RRDuringArray.min(),1.5*RRDuringArray.max())
TypeError: cannot perform reduce with flexible type
Vì vậy, bạn có thể thấy rằng tôi cần chỉ định loại dữ liệu để có thể sử dụng ylim trong matplotlib, nhưng chỉ định loại dữ liệu đang ném thông báo lỗi đã khởi tạo bài đăng này.