gpt4 book ai didi

没有for循环的python numpy访问数组列表

转载 作者:行者123 更新时间:2023-12-02 00:54:55 25 4
gpt4 key购买 nike

我有一个长度可变的数组列表。我有这样的东西:

a=[np.array([0, 3, 4]), np.array([1, 8]), np.array([2, 5, 7]), np.array([6])]

并希望从包含多个值的所有数组中提取除第一个值之外的所有值。在 for 循环中执行此操作非常简单,但我非常希望知道如何在没有 for 循环的情况下执行此操作以节省时间。我的 for 循环是这样的:

duplicate_pos = []
for i in range(len(a)):
if len(a[i]) > 1:
duplicate_pos.append(a[i][1:])

非常感谢。

PS:虽然这是我在这里提出的第一个问题,但自从我几年前开始攻读博士学位以来,stackoverflow 一直是我的日常科学伴侣。感谢这个了不起的社区。

最佳答案

您可以使用 filter 的组合(摆脱矮个子)和map (切片):

b = map(lambda li: li[1:], filter(lambda li: len(li) > 1, a))

# [array([3, 4]), array([8]), array([5, 7])]

在 Python3 中,b 是一个 map 对象,它可以像任何其他可迭代对象一样通过 list(b) 进行列表化。在 Python2 中,map 返回一个 list

关于没有for循环的python numpy访问数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36530446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com