Python 加载数组';列';快速输入数组变量

Python 加载数组';列';快速输入数组变量,python,Python,我知道我可以迭代一个数组,并将每个索引处的值附加到我的4个数组变量中,但是有没有更快、更少的编码方法呢?我想知道我是否可以做这样的事情(这显然不起作用): 最后,三个数组应包含: arr1=['s1',2,5] arr2=['s2',3,6] arr3=['s3',4,7] 编辑:我对其进行了编辑,以反映我的结构“真实”的样子,从而使所选答案更有意义。我得到的是一个元组,其中包含一个列表。内部列表的第一个元素是字符串 非常感谢如果您愿意使用numpy import numpy as

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

最后,三个数组应包含:

  arr1=['s1',2,5]
  arr2=['s2',3,6]
  arr3=['s3',4,7]
编辑:我对其进行了编辑,以反映我的结构“真实”的样子,从而使所选答案更有意义。我得到的是一个元组,其中包含一个列表。内部列表的第一个元素是字符串


非常感谢

如果您愿意使用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]

如果你愿意使用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]

首先,尝试使用Python命名法——您拥有的是列表的元组。此外,Python中的名称(除类名外)通常是带有下划线的
小写字母

要回答实际问题,请使用将多个集合中具有相同索引的项目组合在一起:

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

默认情况下,
zip
生成元组,因此我将它们转换为列表

首先,尝试使用Python命名法-您拥有的是一组列表。此外,Python中的名称(除类名外)通常是带有下划线的
小写字母

要回答实际问题,请使用将多个集合中具有相同索引的项目组合在一起:

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])

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)

如果您使用
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)

你能给这个应用一个转换器吗?要将数组中的字符串值转换为数字,比如说?如果您已经在使用numpy,为什么不直接使用
numpy.transpose()
?是的,您可以,但是对于这个应用程序,您仍然必须在最后对数组进行索引,所以这看起来更简单。似乎第二个索引切片与转置+第一个索引切片的计算非常相似。@mike01010不确定您的意思。我要么修改你上面的问题,要么问一个单独的问题。是的。我想我试图把它简化得太多了。列表中的第一个索引包含字符串,而其余索引是浮点数。在将列表转换为numpy数组时,numpy.array似乎会将第一个索引用作所有项的目标类型。是否可以对此应用转换器?要将数组中的字符串值转换为数字,比如说?如果您已经在使用numpy,为什么不直接使用
numpy.transpose()
?是的,您可以,但是对于这个应用程序,您仍然必须在最后对数组进行索引,所以这看起来更简单。似乎第二个索引切片与转置+第一个索引切片的计算非常相似。@mike01010不确定您的意思。我要么修改你上面的问题,要么问一个单独的问题。是的。我想我试图把它简化得太多了。列表中的第一个索引包含字符串,而其余索引是浮点数。在将列表转换为numpy数组时,似乎numpy.array将使用第一个索引作为所有项的目标类型。谢谢,当我尝试此解决方案时,我得到了一个“zip参数#2必须支持迭代”这是一个很好的标准库专用解决方案。它适用于我-@mike01010,尝试使用与您的问题完全相同的
tupleOfArrays
创建的
arr1,arr2,arr3=map(list,zip(*tupleOfArrays))
是。我实际上有一个列表,它很容易就形成了列表的元组。不幸的是,新的错误是“要解包的项目太多”。大约有700个条目,数组有6个索引。像这样做对我来说很有效:lst1,lst2,lst3=zip(*tuple_of_list[0])谢谢,当我尝试这个解决方案时,我得到了一个“zip参数#2必须支持迭代”这是一个很好的标准库专用解决方案。它适用于我-@mike01010,尝试使用与您的问题完全相同的
tupleOfArrays
创建的
arr1,arr2,arr3=map(list,zip(*tupleOfArrays))
是。我实际上有一个列表,它很容易就形成了列表的元组。不幸的是,新的错误是“要解包的项目太多”。大约有700个条目,数组有6个索引。这样做对我来说很有效:lst1,lst2,lst3=zip(*tuple_of_list[0])