草庐IT

reduce_dim

全部标签

java - 在 Arrays.reduce(...) 中调用对象方法

我有以下3个文件,A.java:classA{privatefloatb;publicA(floatb){this.b=b;}publicfloatgetB(){returnb;}}C.java:importjava.util.Arrays;classC{privateA[]d;privateinti=0;publicC(){d=newA[2];}publicfloattotalB(){returnArrays.stream(d).reduce((e,f)->e.getB()+f.getB()).get();}publicvoidaddB(Ab){d[i++]=b;}}D.java:c

java - Java 8 中 reduce 的累加器是否允许修改其参数?

在Java8中,Stream有一个reduce方法:Treduce(Tidentity,BinaryOperatoraccumulator);是否允许累加器运算符修改其任一参数?我认为不是,因为JavaDoc说累加器应该是NonInterfering,尽管所有示例都在讨论修改集合,而不是修改集合的元素。所以,举个具体的例子,如果我们有integers.reduce(0,Integer::sum);暂时假设Integer是可变的,sum是否可以通过添加(就地)第二个参数的值来修改其第一个参数?我想不会,但我还想举个例子说明这种干扰会在什么地方引起问题。 最佳答

java - Hadoop:如何将 reducer 输出合并到一个文件中?

这个问题在这里已经有了答案:mergeoutputfilesafterreducephase(10个答案)关闭9年前。我知道shell中的“getmerge”命令可以完成这项工作。但是如果我想通过HDFSAPIforjava合并这些输出,我该怎么办?我真正想要的是HDFS上的单个合并文件。我唯一能想到的就是在那之后开始一份额外的工作。谢谢!

python - 您可以将操作直接应用于 map/reduce/filter 中的参数吗?

map和filter通常可以与列表理解互换,但是reduce不像map那样容易换掉>和filter(此外,在某些情况下我仍然更喜欢函数式语法)。但是,当您需要对参数本身进行操作时,我发现自己经历了句法体操,最终不得不编写整个函数以保持可读性。我将使用map来简化插图单元测试,但请记住,现实生活中的用例可能更难表达为列表理解。我找到了两种乱七八糟的方法来解决这个问题,但我从来没有真正使用过。[afunc(*i)foriinaniter]==map(afunc,*zip(*aniter))[afunc(*i)foriinaniter]==map(lambdai:apply(afunc,i)

python - 如何在元组列表上使用 reduce 函数?

我有这个元组列表:a=[(1,2),(1,4),(1,6)]我想使用reduce函数来获得这个结果:(3,12)我试过:x=reduce(lambdax,y:x+y,a)但是我得到一个错误...我想将每个元组的第一个索引中的所有元素相加,然后将第二个元素相加。 最佳答案 如果你希望reduce的输出是一个元组,那么所有的中间结果也应该是一个元组。a=[(1,2),(1,4),(1,6)]printreduce(lambdax,y:(x[0]+y[0],x[1]+y[1]),a)输出(3,12)编辑如果你想在列表为空时得到(0,0)a

python - 在字典列表中使用 'reduce'

我正在尝试编写一个简单的Python函数,该函数对具有likes键的所有值求和。我正在为这项任务进行函数式编程。因此,我需要使用list-comprehension、map、filter或reduce。在这种情况下,我认为reduce是一个合理的选择。defsum_favorites(msgs):num_favorites=reduce(lambdax,y:x["likes"]+y["likes"],msgs)returnnum_favoritescontent1={"likes":32,...}content2={"likes":8,...}content3={"likes":16,

python - pandas stack and unstack performance reduced after dataframe compression 并且比 R 的 data.table 差很多

这个问题是关于在堆叠和取消堆叠操作期间提升Pandas的性能。问题是我有一个大数据框(~2GB)。我关注了thisblog成功将其压缩到~150MB。但是,我的入栈和出栈操作会花费无限长的时间,以至于我必须终止内核并重新启动所有程序。我也用过R的data.table包,飞起来了,我在SO上对此进行了研究。似乎有人在Dataframeunstackperformance-pandas上指向map-reduce线程,但我不确定它有两个原因:stack和unstack在未压缩的情况下在pandas中运行良好,但由于内存问题,我无法在我的原始数据集上执行此操作。R的data.table很容易(

python - hadoop map reduce 永远完成

我是mapreduce世界的新手,我已经完成了一项工作,鉴于这是一项相对较小的任务,似乎需要很长时间才能完成,我猜有些事情没有按计划进行。我正在使用hadoop2.6版,这里收集了一些我认为可以提供帮助的信息。mapreduce程序本身很简单,所以我不会在这里添加这些程序,除非有人真的希望我提供更多见解-为mapreduce运行的python代码与此处相同-http://www.michael-noll.com/tutorials/writing-an-hadoop-mapreduce-program-in-python/.如果有人可以提供有关问题所在或原因的线索,那就太好了。提前致谢

python - 运行时警告 : invalid value encountered in reduce

将numpy更新到版本1.14.1后,我在执行任何命令(例如键入1+1)后收到以下警告消息:/home/username/anaconda3/lib/python3.6/site-packages/numpy/core/_methods.py:26:RuntimeWarning:invalidvalueencounteredinreducereturnumr_maximum(a,axis,None,out,keepdims)现在有人知道问题出在哪里吗?我该如何解决? 最佳答案 我知道我迟到了大约五个月,但我的回答可能对其他人有帮助。

python - 解释 numpy 中 dim、shape、rank、dimension 和 axis 之间的区别

总的来说,我是python和numpy的新手。我阅读了几个教程,但仍然对暗淡、等级、形状、轴和尺寸的差异感到困惑。我的思绪似乎停留在矩阵表示上。所以如果你说A是一个看起来像这样的矩阵:A=123456那么我能想到的就是一个2x3的矩阵(两行三列)。这里我理解的形状是2x3。但我真的无法超越二维矩阵的想法。我不明白例如dot()documentation当它说“对于N维时,它是a的最后一个轴和b的倒数第二个轴的和积”。我很困惑,无法理解这一点。我不明白如果V是N:1向量而M是N:N矩阵,dot(V,M)或dot(M,V)是如何工作的以及它们之间的区别。谁能向我解释什么是N维数组、什么是形