当前位置: 首页 > 面试题库 >

在Numpy数组中累积常数

瞿博易
2023-03-14
问题内容

我试图将+1加到numpy数组的某些特定单元格,但没有慢循环我找不到任何方法:

coords = np.array([[1,2],[1,2],[1,2],[0,0]])
X      = np.zeros((3,3))

for i,j in coords:
  X[i,j] +=1

导致:

X = [[ 1.  0.  0.]
     [ 0.  0.  3.]
     [ 0.  0.  0.]]

X[coords[:,0],coords[:,1] += 1 退货

X = [[ 1.  0.  0.]
     [ 0.  0.  1.]
     [ 0.  0.  0.]]

有什么帮助吗?


问题答案:

numpy.at正是针对这些情况。

In [1]: np.add.at(X,tuple(coords.T),1)

In [2]: X
Out[2]: 
array([[ 1.,  0.,  0.],
       [ 0.,  0.,  3.],
       [ 0.,  0.,  0.]])


 类似资料:
  • 问题内容: 在numpy或scipy(或其他库)中是否有一个函数将cumsum和cumprod的概念推广为任意函数。例如,考虑(理论上的)函数 func是一个接受两个浮点数并返回一个浮点数的函数。特殊情况 和 分别是cumsum和cumprod。例如,如果 我将其应用于: 我想要 问题答案: NumPy的ufunc有: 不幸的是,呼吁在“编Python函数失败,一个奇怪的错误: 这是将NumPy

  • 问题内容: 我想用NumPy创建CDF,下面是我的代码: 我正在阵列旁走,但是需要很长时间执行程序。这个功能有一个内置的功能,不是吗? 问题答案: 我不太确定您的代码在做什么,但是如果您有和返回的数组,则可以用来生成直方图内容的累积和。

  • 我有两个不同长度的向量,每个向量包含0到50之间的数字。有些数字在向量中不包含,其他数字可能出现多次。 我想画一条线,显示每个数字在每个向量中包含的频率,即数字的频率。 如果我将中断设置为每个可能的数字之间,我可以绘制显示频率的直方图: 我知道有一个经验累积分布函数(),它会形成一个S形;但我想要的是一个非累积的经验分布函数,它将导致类似阶梯形钟形曲线的结果,类似于直方图的轮廓。 我能得到的最接近

  • 我尝试过用这个方法来计算累积值,但是如果日期字段与累积字段中的值相同,那么有人能提出类似于这个问题的解决方案吗

  • 问题内容: 我从另一个线程@EnricoGiampieri对累积分布图python的回答中获得了提示,我写道: 我在np.histogram的文档中输入了density = 1,它说: “请注意,除非选择了单位宽度的bin,否则直方图值的总和将不等于1;这不是概率质量函数。” 好吧,的确,当绘制它们时,它们的总和不是1。但是,我不理解“统一宽度的箱”。当我将垃圾箱设置为1时,我得到一个空图表;当我

  • 问题内容: 我有2个形状(5,1)的numpy数组,说:a = [1,2,3,4,5] b = [2,4,2,3,6] 我如何制作一个矩阵,将每个第i个元素与每个第j个元素相乘?喜欢: 不使用forloops?我可以使用重塑,缩小或乘法的任何组合吗? 现在,我沿着行和列创建每个数组的aa * b拼接,然后将元素明智地相乘,但是在我看来,肯定有一种更简单的方法。 问题答案: 使用numpy.oute

  • 本文向大家介绍Linux基础命令日常积累,包括了Linux基础命令日常积累的使用技巧和注意事项,需要的朋友参考一下 今天又一次搞Linux生产环境搭建。这是种步骤很多,很繁琐而且又不得不做的事情。虽然做过很多次,但还是有很多步骤、命令不记得,每一次到处找资料很麻烦,于是将一些步骤记下,以便查找。 登录远程MySQL 给MySQl非root账户分配权限 给账号user1 密码为123456 的用户t

  • 我知道Spark Streaming会生成成批的RDD,但我想积累一个大数据帧,随着每批数据的更新而更新(通过在末尾添加新的数据帧)。 有没有办法像这样访问所有历史流数据? 我看过mapWithState(),但没有看到它专门积累数据帧。