python两数组内容比较好_按部分比较python中的两个numpy数组

我想按部分对两个数组进行比较.

到目前为止,我必须获得所有数组的结果.

import numpy as np

array1 = np.array(list(np.zeros(20))+(list(np.ones(20)))+(list(2*np.ones(20))))

array2 = np.array(list(np.ones(20))+(list(np.ones(20)))+(list(3*np.ones(20))))

result = np.sum(array1 == array2)

print 'all result :' + str(result)

如何才能得到部分结果,例如数组中的第一数据20然后第二数据20和第三数据20?

结果应该是:

全部结果:20

20次点火数据的结果:0

20秒数据的结果:20

20个第三数据的结果:0

解决方法:

首先,让我们比较一下-

mask = array1 == array2

然后,得到所有款项-

allsum = mask.sum()

并获得分段(长度为20)的总和-

section_sums = mask.reshape(-1,20).sum(1)

样品运行-

In [77]: mask = array1 == array2

In [78]: mask.sum()

Out[78]: 20

In [79]: mask.reshape(-1,20).sum(1)

Out[79]: array([ 0, 20, 0])

对于通用长度

如果不能保证输入数组的长度是20的倍数,我们可以使用使用np.bincount的方法来获取section_sums,如下所示:

section_sums = np.bincount(np.arange(mask.size)//20,mask)

样品运行-

In [5]: a1=np.array(list(np.zeros(20))+(list(np.ones(20)))+(list(2*np.ones(17))))

...: a2=np.array(list(np.ones(20))+(list(np.ones(20)))+(list(3*np.ones(17))))

...:

In [6]: mask = a1==a2

In [7]: np.bincount(np.arange(mask.size)//20,mask)

Out[7]: array([ 0., 20., 0.])

标签:python-2-7,arrays,python,numpy

来源: https://codeday.me/bug/20191026/1938484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值