Python:使用循环操作数组

时间:2018-09-30 03:10:10

标签: python numpy

我必须在多个数组上执行相同的操作。有没有办法在Python中使用循环来执行此重复性任务?

例如,我有5个数组:ABCDE

我要执行以下操作:

A = A[0]
B = B[0]
C = C[0]
D = D[0]
E = E[0]

有什么方法可以使用循环或其他技术来避免多次键入几乎相同的内容?

我的问题已被标记为与此question的重复。那里的人在问如何从每个列表(或我的案例数组)中提取第一个元素。我不是简单地尝试提取第一个元素。我实际上是想用第一个元素替换每个数组-实际上是A = A[0]

有人说这不是一个好主意,但这实际上是我想要做的。为了提供一些背景信息,我使用了一些带有形状为n x m的2D数组的代码。当n = 1时,第一个维度是无关紧要的,我想省去该维度,这就是A = A[0]所做的。我的代码需要处理n = 1的情况和n > 1的情况。

换句话说,当n = 1时,我的代码生成的数组A的格式如下:A = array([[a]]),我想对其进行更改,以使{{1} }。重申一下,我需要允许A = array([a])(在这种情况下为n > 1)的灵活性。在这种情况下,我的代码将不会执行A = array([[a1],[a2],...])

如果将最后一行更改为:

,下面的马克·怀特的解决方案将起作用。
A = A[0]

有趣的是,该解决方案使代码更紧凑,但实际上涉及的字符与暴力破解方法一样多(从技术上讲,更多)。

2 个答案:

答案 0 :(得分:1)

我确实认为这是一个非常简单的问题,就我而言,我使用三个数组,但我认为您可以做到五个,亲爱的朋友!

A = [1,3,4]
B = [2,4,5]
C = [54,5,6]
A,B,C = [x[0] for x in [A,B,C]]

答案 1 :(得分:0)

只需创建一个列表列表(或者,具体来说就是对A,B,C等的引用)

l = [A, B, C, D, E]

然后,您可以按自己的选择遍历l

for i in range(len(l)):
    l[i] = l[i][0]

请注意,这将更新l [i]而不是列表(A,B,C,...)本身。