我有多个大小不同的数组,例如m0xn0xk0, m1xn1xk1, m2xn2xk2...
。我正在寻找一种将它们串联到单个数组A_concate
中的方法,以后可以根据该索引对其进行访问。喜欢
A_concate [0]=a_0 # size of m0xn0xk0
A_concate [1]=a_1 # size of m1xn1xk1
...
我们有什么办法可以在python中做到吗?谢谢大家
答案 0 :(得分:1)
如果这只是您想要做的,那为什么不将它们放在列表中呢?
您可以使用
A_concate = [a_0, a_1, a_2,..., a_n]
如果您真的想使用数组,则可以使用
import numpy as np
A_concate = np.array([a_0, a_1, a_2,..., a_n])
以上内容将为您提供一系列对象。每个条目是一个数组。您将没有完整的功能来分割内部数组,但这取决于您要做什么
以下是上述内容的最小示例
import numpy as np
a_0 = np.arange(9)
a_1 = np.arange(10)
a_2 = np.arange(16)
A_concate = np.array([a_0, a_1, a_2])
编辑
添加另一个示例以显示其比一维阵列更通用
import numpy as np
a_0 = np.random.normal(0,1,size=(3,4,5,))
a_1 = np.random.normal(0,1,size=(4,5,6,))
a_2 = np.random.normal(0,1,size=(35,19,97,))
a_3 = np.random.normal(0,1,size=(2,6,14,22,89))
A_concate = np.array([a_0, a_1, a_2, a_3])
答案 1 :(得分:1)
这取决于您要对该结构执行的操作。例如,如果您想索引m0xn0xk0, m1xn1xk1, m2xn2xk2...
所独有的某个值,则可以使用像这样的字典:
A_concate = {}
A_concate[some_key] = m0xn0xk0
A_concate[some_other_key] = m1xn1xk1
,然后您可以使用键值访问它们。另一方面,如果您只希望所有这些列表都存在于同一对象上,并且只打算遍历它们,那么使用列表就可以了:
def listify(*args):
return list(args)
A_concate = listify(m0xn0xk0, m1xn1xk1, m2xn2xk2, ...)
最后,如果您只想将这些对象的所有值放在同一位置,则可以将它们串联到一个列表中:
def flatten(*lists):
a = []
for l in lists:
a.extend(l)
return a
A_concate = flatten(m0xn0xk0, m1xn1xk1, m2xn2xk2, ...)
这仅取决于您要使用它做什么。