Python 如何在列表或数组中连接不同大小的数组?
我有多个大小不同的阵列,如Python 如何在列表或数组中连接不同大小的数组?,python,arrays,python-3.x,Python,Arrays,Python 3.x,我有多个大小不同的阵列,如m0xn0xk0、m1xn1xk1、m2xn2xk2…。我正在寻找一种方法,将它们连接到一个单独的数组a_concate,以后可以根据索引访问该数组。它喜欢 A_concate [0]=a_0 # size of m0xn0xk0 A_concate [1]=a_1 # size of m1xn1xk1 ... 我们有没有办法用python来实现这一点?谢谢大家如果这就是你想要做的,为什么不把它们放在一个列表中呢 你可以用 A_concate = [a_0, a_1,
m0xn0xk0、m1xn1xk1、m2xn2xk2…
。我正在寻找一种方法,将它们连接到一个单独的数组a_concate
,以后可以根据索引访问该数组。它喜欢
A_concate [0]=a_0 # size of m0xn0xk0
A_concate [1]=a_1 # size of m1xn1xk1
...
我们有没有办法用python来实现这一点?谢谢大家如果这就是你想要做的,为什么不把它们放在一个列表中呢 你可以用
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])
编辑
添加另一个示例,说明它比1D阵列更通用
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])
如果这就是你想要做的,为什么不把它们列在一个列表中呢 你可以用
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])
编辑
添加另一个示例,说明它比1D阵列更通用
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])
这取决于你想用这个结构做什么。例如,如果您希望索引到
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, ...)
它取决于你想用它做什么。它取决于你想用这个结构做什么。例如,如果您希望索引到
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, ...)
这取决于你想用它做什么。你说的数组是指numpy数组吗?Numpy数组必须是矩形的,因此只能以多维矩形的方式组合块。是的。有numpy数组当你说数组时,你是指numpy数组吗?Numpy数组必须是矩形的,因此只能以多维矩形的方式组合块。是的。这里有很多令人担忧的事情。这些阵列有不同的大小。你能给我举一个例子,尺寸为3x4x5的a_0,尺寸为4x5x6的a_1…是的,它对你的阵列也同样适用。例如,在这里,我将3个随机数组与3x4x5、4x5x6和35x19x97形状连接起来。编辑我无法在这里的评论中显示它,所以我将把它添加到上面的答案中。对不起。这些阵列有不同的大小。你能给我举一个例子,尺寸为3x4x5的a_0,尺寸为4x5x6的a_1…是的,它对你的阵列也同样适用。例如,在这里,我将3个随机数组与3x4x5、4x5x6和35x19x97形状连接起来。编辑我不能让它在这里的评论中显示得很好,所以我会把它添加到上面的答案中。嗨。如果我想在循环中连接它们。如何修改您的代码?我写了一个脚本在这里,但它没有显示正确的尺寸你能看看我的问题吗?它少了一点,当然是<代码>扩展解压缩列表并将每个元素添加到要扩展的列表中在我的代码中,我只能显示dim(4,5)和缺少dim(3)。你能告诉我如何修改它以获得[0]is(3,4,5)@MoonLee的形状吗?对不起,我最近做了很多C#,所以我被调头了。使用
append
代替:)Hi。如果我想在循环中连接它们。如何修改您的代码?我写了一个脚本在这里,但它没有显示正确的尺寸你能看看我的问题吗?它少了一点,当然是<代码>扩展解压缩列表并将每个元素添加到要扩展的列表中在我的代码中,我只能显示dim(4,5)和缺少dim(3)。你能告诉我如何修改它以获得[0]is(3,4,5)@MoonLee的形状吗?对不起,我最近做了很多C#,所以我被调头了。使用追加代替:)