从数组存储积分值,然后使用该新数组

     2023-03-16     272

关键词:

【中文标题】从数组存储积分值,然后使用该新数组【英文标题】:Store values of integration from array, then use that new array 【发布时间】:2021-09-10 17:23:21 【问题描述】:

我是 Python 新手,所以我真的很挣扎。我想定义一个函数,对一个包含不同值的数组进行一定的计算,将这些新计算的值存储在一个新数组中,然后在另一个计算中使用这些新值。我的尝试是这样的:

import numpy as np
from scipy.integrate import quad

radii = np.arange(10) #array of radius values

def rho(r): 
    return (r**2) 

for i in range(len(radii)):
    def M[r]: #new array by integrating over values from 0 to radii
        scipy.integrate.quad(rho(r), 0, radii[i])

def P(r):
    return (5*M[r]) #make new array using values from M[r] calculated above

【问题讨论】:

为什么要在循环中定义函数?为什么你从不调用任何函数? @DTRHJ,试试en.wikipedia.org/wiki/Rubber_duck_debugging。在 *** 中,我们的合作者期望:(a)一个场景; (b) 给定的输入; (c) 期望的产出; (d) 尝试产生输出的代码; (e) 错误的输出或错误; (f) 如果有的话,对错误结果的一些见解。你给了我们半个场景和一个无意义的代码。你能做得更好吗?试着先和橡皮鸭讨论一下。 @MarcusViniciusPompeu 我是该平台的新手,直到现在才知道要求/标准。 【参考方案1】:

好的,这个脚本有点乱,所以让我们解压缩它。我从未使用过scipy.integrate.quad,但我查了一下,并通过测试确定这些是quad 的有效参数。有更有效的方法可以做到这一点,但为了保存,我会尽量保留脚本的整体结构,只修复错误和错误。所以,据我了解,你想这样写:

import numpy as np
from scipy.integrate import quad

# Here's where we start to make changes. First, we're going to define the function, taking in two parameters, r and the array radii.
# We don't need to specify data types, because Python is a strongly-typed language.
# It is good practice to define your functions before the start of the program.
def M(r, radii):
    # The loop goes _inside_ the function, otherwise we're just defining the function M(r) over and over again to a slightly different thing!
    for i in range(len(radii)):
        # Also note: since we imported quad from scipy.integrate, we only need to reference quad, and in fact referencing scipy.integrate.quad just causes an error!
        output[i] = quad(r, 0, radii[i])
        # We can also multiply by 5 in this function, so we really only need one. Hell, we don't actually _need_ a function at all,
        # unless you're planning to reference it multiple times in other parts of a larger program.
        output[i] *= 5
    return output

# You have a choice between doing the maths _inside_ the main function or in maybe in a lambda function like this, which is a bit more pythonic than a 1-line normal function. Use like so:
rho = lambda r: r**2 

# Beginning of program (this is my example of what calling the function with a list called radii might be)
radii = np.arange(10)

new_array = M(rho, radii)

如果此解决方案正确,请将其标记为已接受。

我希望这会有所帮助!

【讨论】:

感谢您的帮助。是的,我知道这是一个糟糕的脚本,这就是我需要帮助的原因。我确实在尝试学习正确的语法,但这对我来说是一个缓慢的过程,当然我尝试使用谷歌搜索其他解决方案。您说:“除非您打算在更大程序的其他部分中多次引用它”,否则我确实需要稍后多次引用它并最终对其进行另一个积分和另一个功能。这就是为什么我想将它定义为具有这些存储值的新函数。 那么,我提出的答案对您有用吗?我已经给出了在脚本底部调用函数的示例。 @DTRHJ 您可以使用M(argument_1, argument_2) 多次调用该函数,正如我在脚本最后一行中演示的那样。此外,在 Python 中,我们通常只将数组(尤其是一维数组)称为列表,因此您可能会在下一个问题上通过更 Python 的名称来获得更多答案。 @Thamespython,赞!伙计,我没有耐心! @Thamespython 是的,谢谢。它已标记为已解决。

访问从 Reactjs 中的状态创建的数组的数据时出现问题

】访问从Reactjs中的状态创建的数组的数据时出现问题【英文标题】:ProblemaccessingdataofanarraycreatedfromthestateinReactjs【发布时间】:2022-01-0805:40:59【问题描述】:我有一系列国家/地区代码,我需要知道名称。我正在尝试从州(axios... 查看详情

如何在 python 中从声音到频谱然后回到声音?

...我如何获取一个wav文件,将其转换为每几毫秒频率强度的数组,对该数组执行一些操作,然后将该新数组转换回wav文件。有没有类似这样的库wav_data=library.read_wav(\'aoeu.wav\')# 查看详情

java示例代码_使用逗号分别存储每个值,然后将它们存储到单独的数组中

java示例代码_使用逗号分别存储每个值,然后将它们存储到单独的数组中 查看详情

将固定字节从输入流存储到字节数组中

】将固定字节从输入流存储到字节数组中【英文标题】:storefixedbytesintobytearrayfrominputstream【发布时间】:2015-02-1422:24:25【问题描述】:我正在尝试学习Java,但遇到了必须创建URL提取器的实践问题。我能够流式传输数据并打印它... 查看详情

将 db 值存储到 php 数组中,然后遍历数组

】将db值存储到php数组中,然后遍历数组【英文标题】:Storingdbvalueintophparrayandthenloopingthroughthearray【发布时间】:2016-02-2011:34:46【问题描述】:将db值存储到数组中然后循环遍历数组与仅使用while循环有什么好处?将db结果输出到... 查看详情

numpy使用np.dot函数或者@操作符计算两个numpy数组的点积数量积(dotproductscalarproduct)

numpy使用np.dot函数或者@操作符计算两个numpy数组的点积数量积(dotproduct、scalarproduct)目录 查看详情

C++ SSE:存储到数组后的未定义行为

】C++SSE:存储到数组后的未定义行为【英文标题】:C++SSE:Undefinedbehaviorafterstoringtoanarray【发布时间】:2017-02-2619:38:36【问题描述】:我正在使用SSE指令_mm_loadu_si128从2个未对齐的向量vec1和vec2中读取uint64_t整数,该指令从对齐和未... 查看详情

使用 SIMD 提高数组的浮点点积的性能

】使用SIMD提高数组的浮点点积的性能【英文标题】:Improvingperformanceoffloating-pointdot-productofanarraywithSIMD【发布时间】:2021-01-2021:53:48【问题描述】:我有这个函数来计算一个双精度数组:voidavx2_mul_64_block(double&sum,double*lhs_arr,dou... 查看详情

是否可以捕获音频并将其存储在数组中?

】是否可以捕获音频并将其存储在数组中?【英文标题】:Isitpossibletocaptureaudioandstoreitinarray?【发布时间】:2013-11-3021:37:27【问题描述】:我想从麦克风或其他输入设备捕获声音并将该数据存储在数组中,然后使用javascript使用FFT... 查看详情

从概率模型到逻辑分类

...sp;            数组的基本使用一、数组的定义概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。格式一:数组存储的数据类型[]数组名字;举例:int[]  a... 查看详情

构建积乘数组

题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法 思路:不能使用除法,则根据A由上至下、由下至上连乘1classSolution{2public:3vector<int>multiply(constve... 查看详情

iOS:在数组中存储指向 UIImageViews 的链接,然后使用它们

】iOS:在数组中存储指向UIImageViews的链接,然后使用它们【英文标题】:iOS:StoringLinktoUIImageViewsinArray,usingthemafterwards【发布时间】:2014-03-2323:25:50【问题描述】:我想制作一个UIScrollView,它是“可分页的”并包含多种对象,包括... 查看详情

如何从数组中删除随机项,然后将其从数组中删除,直到数组为空

】如何从数组中删除随机项,然后将其从数组中删除,直到数组为空【英文标题】:Howtoremoverandomitemfromarrayandthenremoveitfromarrayuntilarrayisempty【发布时间】:2016-07-0408:25:45【问题描述】:我正在尝试使用jquery或javascript从数组中删除... 查看详情

作业帮助;从多个文件读入向量/数组

】作业帮助;从多个文件读入向量/数组【英文标题】:HomeworkHelp;ReadingfrommultiplefilesintoVectors/Arrays【发布时间】:2011-12-0812:45:03【问题描述】:好的,我的任务是从2个单独的文件中读取。第一个文件读入“HallOfFameMember”,然后... 查看详情

从角度2中的存储数组中删除项目

】从角度2中的存储数组中删除项目【英文标题】:removeitemfromstoredarrayinangular2【发布时间】:2017-03-2015:08:10【问题描述】:我想使用TypeScript从angular2中的存储数组中删除一个项目。我正在使用一个名为DataService的服务,DataService... 查看详情

测试中c平台是啥东西

...励来源直接将变量定义为激励来源并初始化将数据存储在数组中从外部文件读取数据作为激励来源对于存储在数组中和外部文件中的激励源,要进行定义数组进行存储。使用数组作为激励源这里定义两个数组作为仿真的测试激励... 查看详情

从 POST 方法中使用 JDBCTemplate 存储对象数组 - Spring Boot

】从POST方法中使用JDBCTemplate存储对象数组-SpringBoot【英文标题】:StoringobjectarraywithJDBCTemplatefromPOSTmethod-SpringBoot【发布时间】:2019-07-1219:04:30【问题描述】:如何使用JDBCTemplate将对象数组插入数据库?我的控制器中的POST方法传入... 查看详情

2D 数组每列的外积形成 3D 数组 - NumPy

】2D数组每列的外积形成3D数组-NumPy【英文标题】:Outerproductofeachcolumnofa2Darraytoforma3Darray-NumPy【发布时间】:2017-05-1902:06:48【问题描述】:令X为MxN矩阵。将xi表示为X的第i列。我想创建一个由MxM矩阵xi.dot(xi.T)组成的3维NxMxM数组。我... 查看详情