This Python code:

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()

Throws this error message:

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.

有人能告诉我如何修复上面的坏代码中的问题,从而停止抛出错误消息吗?


EDIT:

未过滤的DuringExSummary of Meansarray是:

[['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]]

对我来说,它看起来像一个5行乘13列的矩阵,尽管当不同的数据通过脚本运行时,行数是可变的.与我在这里添加的数据相同.

EDIT 2:但是,脚本抛出了一个错误.所以我不认为你的 idea 解释了这里发生的问题.不过谢谢你.还有其他 idea 吗?


EDIT 3:

仅供参考,如果我替换这行有问题的代码:

    RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray,dtype=p.float64)[1:,3]

换言之:

    RRDuringArray = p.array(UnFilteredDuringExSummaryOfMeansArray)[1:,3]

然后,脚本的这一部分工作正常,不会抛出错误,但接下来的这一行代码:

p.ylim(.5*RRDuringArray.min(),1.5*RRDuringArray.max())

引发此错误:

File "mypath\mypythonscript.py", line 3631, in CreateSummaryGraphics
  p.ylim(.5*RRDuringArray.min(),1.5*RRDuringArray.max())
TypeError: cannot perform reduce with flexible type

因此,您可以看到,我需要指定数据类型,以便能够在matplotlib中使用ylim,但指定数据类型会引发引发此帖子的错误消息.

推荐答案

从你展示给我们的代码中,我们唯一能知道的是,你正在try 从一个形状不像多维数组的列表中创建一个array.例如

numpy.array([[1,2], [2, 3, 4]])          # wrong!

numpy.array([[1,2], [2, [3, 4]]])        # wrong!

will yield this err或 message, because the shape of the input list isn't a (generalised) "box" that can be turned into a multidimensional array. So probably UnFilteredDuringExSummaryOfMeansArray contains sequences of different lengths.

Another possible cause f或 this err或 message is trying to use a string as an element in an array of type float:

numpy.array([1.2, "abc"], dtype=float)   # wrong!

That is what you are trying acc或ding to your edit. If you really want to have a NumPy array containing both strings and floats, you could use the dtype object, which enables the array to hold arbitrary Python objects:

numpy.array([1.2, "abc"], dtype=object)

在不知道代码应该完成什么的情况下,我无法判断这是否是您想要的.

Python相关问答推荐

Python:根据创建时间合并两个收件箱

使用Python OpenCV的文本检测分割

获取Azure Pipelines以从pyproject.toml(而不是relevments_dev.文本)安装测试环境

Python中两个矩阵的自定义Hadamard风格产物

在Python中管理多个OpenGVBO和VAO实例

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

指示组内的rejected_time是否在creation_timestamp后5分钟内

覆盖Django rest响应,仅返回PK

从包含数字和单词的文件中读取和获取数据集

当多个值具有相同模式时返回空

什么相当于pytorch中的numpy累积ufunc

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

如何使用pytest来查看Python中是否存在class attribution属性?

如何使用表达式将字符串解压缩到Polars DataFrame中的多个列中?

运输问题分支定界法&

为什么NumPy的向量化计算在将向量存储为类属性时较慢?'

以逻辑方式获取自己的pyproject.toml依赖项

Python—转换日期:价目表到新行

当条件满足时停止ODE集成?

在Docker容器(Alpine)上运行的Python应用程序中读取. accdb数据库