Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在列表或数组中连接不同大小的数组?_Python_Arrays_Python 3.x - Fatal编程技术网

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#,所以我被调头了。使用
追加
代替:)