将数组“columns”快速加载到数组变量中

2024-09-30 22:09:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道我可以遍历一个数组,并将每个索引处的值附加到我的4个数组变量中,但是有没有一种更快、更少的编码方法呢?我想知道我是否能做这样的事(显然不行):

tupleOfArrays = ([['s1',2,3], 
                  ['s2',3,4],
                  ['s5',6,7]])

arr1, arr2, arr3 = [(a[0],a[1],a[2]) for a in tupleOfArrays]

最后,三个数组应包含:

  arr1=['s1',2,5]
  arr2=['s2',3,6]
  arr3=['s3',4,7]

编辑:我编辑这篇文章是为了反映我的结构“真实”的样子,以便所选的答案更有意义。我得到的是一个元组,其中包含一个列表。内部列表的第一个元素是字符串

多谢了


Tags: in编辑列表fors3数组s2s5
3条回答

如果使用numpy,则可以使用转置方法来获取所需内容:

import numpy as np

tupleOfArrays = ([1,2,3], 
                 [2,3,4],
                 [5,6,7])

numpyList=np.array(tupleOfArrays)
arr1,arr2,arr3 = numpyList.transpose()

另外,要回答有关将值从string更改为int的注释,可以使用numpy方法astype

import numpy as np       

tupleOfArrays = (["1","2","3"], 
                     ["2","3","4"],
                     ["5","6","7"])

numpyList=np.array(tupleOfArrays)
transposed = numpyList.transpose()
arr1,arr2,arr3 = transposed.astype(np.int)

首先,尝试使用Python术语-您拥有的是一组列表。另外,Python中的名称(除了类名)通常是lowercase_with_underscores

要回答您的实际问题,请使用^{}在多个集合中组合具有相同索引的项:

lst1, lst2, lst3 = map(list, zip(*tuple_of_lists))

zip默认情况下生成元组,因此我使用了^{}将它们转换为列表

如果你愿意用numpy

import numpy as np

tupleOfArrays = ([1,2,3], 
                 [2,3,4],
                 [5,6,7])

toa = np.array(tupleOfArrays)

arr1 = toa[:,0]
arr2 = toa[:,1]
arr3 = toa[:,2]

相关问题 更多 >