Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.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_Numpy_Numpy Ndarray - Fatal编程技术网

Python 连接不同大小的阵列

Python 连接不同大小的阵列,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,简单的数据结构问题,但我找不到正确的python语法。给定numpy数组(在我的实际使用中,从带有np.loadtxt的文本文件中读取),例如 i、 例如,2D,但一维中的所有不同长度。如何将它们组合成单个3D数组,以便combinedArrays[0]返回a,或combinedArrays[:,0]返回所有第一行,以此类推 我尝试了np.append、np.stack、和np.concatenate,但都没有成功。我可以用零展开较小的矩阵,只需顶部填充,但这会无缘无故地带来大量额外的零。我强烈

简单的数据结构问题,但我找不到正确的python语法。给定numpy数组(在我的实际使用中,从带有
np.loadtxt
的文本文件中读取),例如

i、 例如,2D,但一维中的所有不同长度。如何将它们组合成单个3D数组,以便
combinedArrays[0]
返回a,或
combinedArrays[:,0]
返回所有第一行,以此类推


我尝试了
np.append
np.stack
、和
np.concatenate
,但都没有成功。我可以用零展开较小的矩阵,只需顶部填充,但这会无缘无故地带来大量额外的零。

我强烈建议您使用
tensorflow.ragged.constant()

您可以使用以下代码创建一个:

import tensorflow as tf
t = [A,B,C]
digits = tf.ragged.constant(t)
然后,您不仅可以按所需的方式对其进行切片,还可以使用tensorflow库中的其他方法,例如使用
.numpy()
等将其转换为numpy数组


有关更多信息,请参阅:

我强烈建议您使用
tensorflow.ragged.constant()

您可以使用以下代码创建一个:

import tensorflow as tf
t = [A,B,C]
digits = tf.ragged.constant(t)
然后,您不仅可以按所需的方式对其进行切片,还可以使用tensorflow库中的其他方法,例如使用
.numpy()
等将其转换为numpy数组

有关更多信息,请参阅:

那么numpy数组和numpy数组呢:

as_array = np.array([A,B,C])
print(as_array)
[array([[1, 2],
        [3, 4]]) array([[ 5,  6],
                        [ 7,  8],
                        [ 9, 10]]) array([[11, 12],
                                          [13, 14],
                                          [15, 10]])]
阵列列表如何:

as_list = [A,B,C]
as_list.append(as_list)
print(as_list)
[array([[1, 2],
       [3, 4]]), array([[ 5,  6],
       [ 7,  8],
       [ 9, 10]]), array([[11, 12],
       [13, 14],
       [15, 10]]), [...]]
你也可以用字典

那么numpy数组和numpy数组呢:

as_array = np.array([A,B,C])
print(as_array)
[array([[1, 2],
        [3, 4]]) array([[ 5,  6],
                        [ 7,  8],
                        [ 9, 10]]) array([[11, 12],
                                          [13, 14],
                                          [15, 10]])]
阵列列表如何:

as_list = [A,B,C]
as_list.append(as_list)
print(as_list)
[array([[1, 2],
       [3, 4]]), array([[ 5,  6],
       [ 7,  8],
       [ 9, 10]]), array([[11, 12],
       [13, 14],
       [15, 10]]), [...]]

你也可以使用字典。

你不能,因为你的数组大小不同。你不能把它包装成一个数组吗?如果你有很多零,你可以使用稀疏矩阵。但是对于你提到的例子,你无中生有。事实上,一个填充了零的numpy数组比你的列表更节省内存?除了为组合阵列编制索引外,你打算用组合阵列做什么?我真的不能强迫它们成为单个阵列,因为在我的实际用例中,矩阵代表不同的恒星,以及关于它们的各种参数(位置、速度、质量等),所以我导入的矩阵需要分开`合并后的[:,2]将给出每个文件的所有第三行,@Reti43当最小的行有3000行,最大的行有10000行时,“零束”的参数是否仍然适用?本质上,我只是想做一个秩为3的“不规则张量”,但是如果没有数学运算,你就不能,因为你的数组有不同的大小。你不能把它包装成一个数组吗?如果你有很多零,你可以使用稀疏矩阵。但是对于你提到的例子,你无中生有。事实上,一个填充了零的numpy数组比你的列表更节省内存?除了为组合阵列编制索引外,你打算用组合阵列做什么?我真的不能强迫它们成为单个阵列,因为在我的实际用例中,矩阵代表不同的恒星,以及关于它们的各种参数(位置、速度、质量等),所以我导入的矩阵需要分开`合并后的[:,2]将给出每个文件的所有第三行,@Reti43当最小的行有3000行,最大的行有10000行时,“零束”的参数是否仍然适用?本质上,我只是想制作一个等级为3的“参差不齐张量”,但是如果没有itI上的数学运算,我就无法安装它。我已经尝试升级到64位Python 3.9,更新了我所有的软件包,跟踪了我能搜索到的所有结果,它只是一个接一个地给我错误。请附上你所面临的错误@BrandonMyersip是一个痛苦的问题,不知怎的找不到要安装的软件包。我有点放弃了。据我所知,如果我能安装它,这将满足我的要求,但这是个人问题,不是问题之一。我无法安装它。我已经尝试升级到64位Python 3.9,更新了我所有的软件包,跟踪了我能搜索到的所有结果,它只是一个接一个地给我错误。请附上你所面临的错误@BrandonMyersip是一个痛苦的问题,不知怎的找不到要安装的软件包。我有点放弃了。据我所知,如果我能安装它,这将满足我的要求,但这是个人问题,不是问题之一。