Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将函数与时间积分;i、 e';y';是一个数组,时间(t)的值在1到3000之间变化_Python_Arrays_Pandas_Numpy_Integration - Fatal编程技术网

Python 如何将函数与时间积分;i、 e';y';是一个数组,时间(t)的值在1到3000之间变化

Python 如何将函数与时间积分;i、 e';y';是一个数组,时间(t)的值在1到3000之间变化,python,arrays,pandas,numpy,integration,Python,Arrays,Pandas,Numpy,Integration,如何集成函数f(y)w.r.t时间;i、 e'y'是一个3000个值的数组,时间(t)的值从1到3000不等。因此,在积分f(y)之后,我需要3000个值。 积分是不确定的,积分值必须不带'x'和'C'(常数)。 这是我代码的一部分: k12 = np.array([random.random() for _ in range(3000)]) I1 = np.array([random.random() for _ in range(3000)]) m12 = np.array([random.

如何集成函数
f(y)
w.r.t时间;i、 e
'y'
是一个3000个值的数组,
时间(t)
的值从1到3000不等。因此,在积分
f(y)
之后,我需要3000个值。 积分是不确定的,积分值必须不带
'x'
'C'(常数)
。 这是我代码的一部分:

k12 = np.array([random.random() for _ in range(3000)])
I1 = np.array([random.random() for _ in range(3000)])
m12 = np.array([random.random() for _ in range(3000)])
_k12 = [-x for x in k12]
_m12 = [-x for x in m12]

k21 = np.array([random.random() for _ in range(3000)])
I2 = np.array([random.random() for _ in range(3000)])
m21 = np.array([random.random() for _ in range(3000)])
_k21 = [-x for x in k21]
_m21 = [-x for x in m21]

k12_I1 = [i / j for i, j in zip(k12, I1)]
m12_I1 = [i / j for i, j in zip(m12, I1)]
_k12_I1 = [i / j for i, j in zip(_k12, I1)]
_m12_I1 = [i / j for i, j in zip(_m12, I1)]

k21_I2 = [i / j for i, j in zip(k21, I2)]
m21_I2 = [i / j for i, j in zip(m21, I2)]
_k21_I2 = [i / j for i, j in zip(_k21, I2)]
_m21_I2 = [i / j for i, j in zip(_m21, I2)]

X1_x = np.array(pd.read_csv(r"C:/Users/Lenovo/Desktop/Temp/X1_x.csv"))
X2 = np.array(pd.read_csv(r"C:/Users/Lenovo/Desktop/Temp/X2.csv"))
X2_diff = np.array(pd.read_csv(r"C:/Users/Lenovo/Desktop/Temp/X2_diff.csv"))

X3_ = ((k12*X1_x)-(I1*X2_diff)+(m12*X2))/k12
我需要X3,但由于积分值的形式是常数*x,因此它给出了一个错误:

'TypeError: can't multiply sequence by non-int of type 'float''

有一些符号库完全适合您的任务,比如-非常高级的符号库。你可以用它

Numpy库只做数值计算,没有符号,你必须在头脑中做所有符号

正如我在你最后的X3中所理解的,你有两项之和,一项是
Val1*x
另一项是
Val2
,即
X3=Val1*x+Val2
。然后您可以将
X3
分成两部分(这里Val1是X3_x,Val2是X3_c):

稍后,为了计算某个给定的固定值
x
的整个X3,您只需在Python中执行
X3=X3_x*x+X3_c

此外,您必须以这样一种方式处理CSV,即最终数组只包含浮点数,不包含符号,
*x
到处删除,即:

X1_rd = np.array([e.strip().replace('[', '').replace(']', '').replace('*x', '') for e in pd.read_csv(r"X1_x.csv")]).astype(np.float64)
X2_rd = np.array(pd.read_csv(r"X2.csv")).astype(np.float64)
X2_diff_rd = np.array(pd.read_csv(r"X2_diff.csv")).astype(np.float64)

欢迎来到堆栈溢出。为了帮助您,我们需要尝试将所有数组转换为
np.float64
。因为它看起来像是从CSV数组中读取的整数数组,但计算时需要浮点。如果您有一些整数数组
X
,则要将其转换为float do
X=X.astype(np.float64)
。它有帮助吗?1)我有一个csv文件“X2”,里面有3000个值(都是浮点值)。(2) 使用这个csv文件,我必须通过以下关系计算‘X1’的值:导数X1=X2或积分X2=X1(3),因为X2的所有值都是常数,所以其积分的形式为ax+C(4) 现在,python将这些“x”和“C”识别为字母而不是符号因此,我无法计算X1的3000个值。您的特定错误
“TypeError:无法将序列乘以“float”类型的非整数”
表示您正在尝试将整数数组乘以浮点数。这就是为什么我说将整数转换为浮点数将有助于修复此特定错误。关于其他问题-简单我们帮助你们的方法是你们给我们一个最小的可重复的例子。这意味着你们必须提供在我们这边(我们的计算机)制造相同错误所需的一切,只有这样我们才能帮助您。给我们提供最少的代码,但完全可执行,这会导致此错误。也给我们csv,只有几行。@peelwan010在您的X1.csv文件中有类似于
12345*x
的值,稍后您在
中使用X1((k12*X1_x)-(I1*X2_diff)+(m12*X2))/k12
,这个表达式应该给你什么?你不能用
12345
替换
12345*x
?这样就没有
*x
符号了吗?Numpy只允许数值计算,不允许符号计算。所以你必须自己弄清楚如何只进行数值计算,如何替换
*x
等等不得不这样想-我想做一些象征性的计算,但我只有数字Numpy,我应该怎么做才能只用数字。非常感谢你,代码运行得非常完美!!你能解释一下这里发生了什么吗:X1_rd=np.array([e.strip().replace('[','')。replace(']','')。replace(']','')。replace('*x','')对于pd.read_csv(r“X1_x.csv”)].astype(np.float64)X2_rd=np.array(pd.read_csv(r“X2.csv”))).astype(np.float64)X2_diff_rd=np.array(pd.read_csv(r“X2_diff.csv”))).astype(np.float64)@peelwan010我刚刚将所有3个csv转换为浮点数。第一个csv需要额外的东西-删除
[
]
*x
之后,我将X3分成两部分
X3=X3_x*x+X3_c
,并分别计算。在你的头脑中,所有符号计算都必须做,Numpy只做数字部分。好的@Arty,那么你从csv中删除了*x?@peelwan010删除了所有的
[
]
*x
来自读取的CSV。您不必自己编辑CSV,我的代码在飞行中会执行所有删除操作。但是@Arty我需要在我的X3结果中使用“*x”,以便将来如果我得到“x”的值,我只需将所有这些X3值乘以x。是否可能?
X1_rd = np.array([e.strip().replace('[', '').replace(']', '').replace('*x', '') for e in pd.read_csv(r"X1_x.csv")]).astype(np.float64)
X2_rd = np.array(pd.read_csv(r"X2.csv")).astype(np.float64)
X2_diff_rd = np.array(pd.read_csv(r"X2_diff.csv")).astype(np.float64)