社区首页 >问答首页 >根据条件获取NumPy数组的连续元素组

根据条件获取NumPy数组的连续元素组
EN

Stack Overflow用户
提问于 2019-07-04 04:41:56
回答 1查看 1.8K关注 0票数 4

我有一个NumPy数组如下:

代码语言:javascript
代码运行次数:0
复制
import numpy as np
a = np.array([1, 4, 2, 6, 4, 4, 6, 2, 7, 6, 2, 8, 9, 3, 6, 3, 4, 4, 5, 8])

和一个恒数b = 6

前一个问题的基础上,我可以连续地计数由a中的元素小于b 2或更多的次数定义的数字c

代码语言:javascript
代码运行次数:0
复制
from itertools import groupby
b = 6
sum(len(list(g))>=2 for i, g in groupby(a < b) if i)

所以在这个例子中,c == 3

现在,我希望每次满足条件时输出一个数组,而不是计算满足条件的次数。

因此,对于这个示例,正确的输出应该是:

代码语言:javascript
代码运行次数:0
复制
array1 = [1, 4, 2]
array2 = [4, 4]
array3 = [3, 4, 4, 5]

因为:

代码语言:javascript
代码运行次数:0
复制
1, 4, 2, 6, 4, 4, 6, 2, 7, 6, 2, 8, 9, 3, 6, 3, 4, 4, 5, 8  # numbers in a
1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0  # (a<b)
^^^^^^^-----^^^^-----------------------------^^^^^^^^^^---  # (a<b) 2+ times consecutively
   1         2                                    3

到目前为止,我已经尝试了不同的选择:

代码语言:javascript
代码运行次数:0
复制
np.isin((len(list(g))>=2 for i, g in groupby(a < b)if i), a)

代码语言:javascript
代码运行次数:0
复制
np.extract((len(list(g))>=2 for i, g in groupby(a < b)if i), a)

但他们都没有达到我正在寻找的目标。有人能告诉我正确的Python工具,以便输出满足我条件的不同数组吗?

EN

回答 1

Stack Overflow用户

发布于 2019-07-04 04:49:48

使用groupby并抓取组:

代码语言:javascript
代码运行次数:0
复制
from itertools import groupby

lst = []
b = 6
for i, g in groupby(a, key=lambda x: x < b):
    grp = list(g)
    if i and len(grp) >= 2:
        lst.append(grp)

print(lst)

# [[1, 4, 2], [4, 4], [3, 4, 4, 5]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56888201

复制
相关文章
Numpy根据Bool值挑选数组中元素
使用Boolean类型的数组挑选一维数组中的值 使用一维Boolean数组选取数组中的特定元素,对应位置为True则选取,为False则不选取 import numpy as np i_=[2] # 挑选第三行数据 pop=np.arange(12).reshape(3,4) print("pop(3,4)\n",pop) bool=np.array([0,0,1,1]).astype("bool") # [False,False,True,True] # 使用数组作为索引选择个体 pop_i_=po
演化计算与人工智能
2020/08/14
1.7K0
Python获取numpy数组中最大的5个元素(保持原顺序)
本文主要演示numpy的argsort()函数的用法。这个函数的返回值是数组中的元素排序后的原下标,例如np.argsort([3,1,2])的返回结果是array([1, 2, 0], dtype=int64),表达的是意思是原来下标1对应的元素最小,然后是原来下标2的元素,最后是原来下标0的元素最大。 下面的小代码演示了该函数的用法,并在最后按数组中原来的位置顺序返回了最大的5个元素。 >>> import numpy as np >>> x = np.random.randint(1, 100, 10
Python小屋屋主
2018/04/16
5.6K0
NumPy 获取唯一元素、出现次数、展平数组
要获取NumPy数组中唯一值的索引(数组中唯一值的第一个索引位置的数组),只需在np.unique()中传递return_index参数:
double
2021/07/12
2.3K0
Python numpy函数:dtype数组元素类型
而且,每一种数据类型都有几种字符串表达形式,我们可以使用typeDict字典来查询某种字符串所代表的数据类型,比如“d”和“double”都是float64数据类型:
全栈程序员站长
2022/06/27
7160
Python numpy函数:dtype数组元素类型
python获取数组中最多的元素
获取数组中数量最多的元素,也就是最频繁的那个元素,方法有很多,下面是3种最简单的:
周小董
2019/08/14
2.1K0
根据获取内部元素的高度,设置iframe的高度
iframe 是一个非常迷得一个元素,很难直接获取其内部元素的高度。 下面分享一个方法,可以获取 iframe 内部元素的高度: function setIframeHeight(id){     try{         var iframe = document.getElementById(id);         if(iframe.attachEvent){             iframe.attachEvent("onload", function(){                 i
德顺
2019/11/13
9.3K0
numpy入门-数组中添加和删除元素
**numpy.insert(arr,obj,value,axis=None) **
皮大大
2021/03/02
6.3K0
手撕numpy(四):数组的广播机制、数组元素的底层存储
概念:广播(Broadcast)是numpy对不同形状(shape)的数组,进行数值计算的方式,对数组的算术运算通常在相对应的元素上进行。
朱小五
2020/03/19
1.2K0
Numpy入门之 数组大小和元素类型
注意:改变shape属性只是调整每个维度的大小,数组的元素在内存中的位置并没有改变(因此元素的总数保持不变),只是改变了索引的方式。
用户6021899
2019/08/14
1.4K0
按照元素指定条件筛选结构体数组
这篇博客: https://xuzhiwei.blog.csdn.net/article/details/102836602
演化计算与人工智能
2020/08/14
5860
如何获取数组a和数组b 之间的共元素?
# 4.如何获取数组a = np.array([1,2,3,2,3,4,3,4,5,6])和数组b = np.array([7,2,10,2,7,4,9,4,9,8])之间的共元素? # 法1 a
瑞新
2020/07/07
3.4K0
c++数组,c++获取数组元素个数
(4).c++获取数组元素个数,通过sizeof计算数组总大小,再计算单个元素的类型的总大小,然后用数组的总大小/元素类型的大小即可
高久峰
2023/06/23
3750
java怎么输出数组的下标_java数组获取指定元素
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
3.3K0
Golang MongoDB Driver 更新符合条件的数组元素的字段
在 MongoDB 的 Shell 里修改文档里某个符合条件的数组里的值的字段,可以这样:
饶文津
2020/08/05
4.1K0
js获取数组的最后一个元素
下面是js获取数组最后一个元素的三种方式 一、JavaScript pop() 方法 pop() 方法用于删除并返回数组的最后一个元素。 注意:pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。 var arr = new Array("js","JavaScript","jQuery"); var end = arr.pop() console.log(end);//
用户2323866
2021/06/23
12.9K0
vue根据下标获取数组中的值_document.getElementBy
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/03
4K0
利用Numpy中的ascontiguousarray可以是数组在内存上连续,加速计算
AttributeError: incompatible shape for a non-contiguous array
用户7886150
2021/01/02
2K0
点击加载更多

相似问题

基于多个条件获取NumPy数组的连续元素组

32

如何查找NumPy数组中的连续元素组

71

如何根据条件计算numpy数组的每个元素

35

获取满足某些条件的numpy数组元素

20

标识NumPy数组中的连续值组

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档