连接不同大小的 ndarray
Concatenate Different Sized ndarrays
简单的数据结构问题,但我找不到正确的 python 语法。给定 numpy 数组(在我的实际使用中,要从带有 np.loadtxt
的文本文件中读取)例如
A=[[1,2],[3,4]]
B=[[5,6],[7,8],[9,10]]
C=[[11,12],[13,14],[15,10]]
即 2D,但一维的所有长度都不同。我如何将它们组合成一个 3D 数组,例如 combinedArrays[0]
returns A,或 combinedArrays[:,0]
returns 所有第一行,等等?
我尝试了 np.append
、np.stack
和 np.concatenate
,但其中 none 有效。我可以用零扩展较小的矩阵,然后只填充顶部,但那会无缘无故地携带大量额外的零。
我强烈推荐你使用tensorflow.ragged.constant()
您可以使用以下代码创建一个:
import tensorflow as tf
t = [A,B,C]
digits = tf.ragged.constant(t)
然后你不仅可以按照你想要的方式切片,还可以使用tensorflow库中的其他方法,例如使用.numpy()
等
将其转换为numpy数组
更多信息请参考:Link
import numpy as np
A=np.array([[1,2],[3,4]])
B=np.array([[5,6],[7,8],[9,10]])
C=np.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]]), [...]]
你也可以使用字典。
简单的数据结构问题,但我找不到正确的 python 语法。给定 numpy 数组(在我的实际使用中,要从带有 np.loadtxt
的文本文件中读取)例如
A=[[1,2],[3,4]]
B=[[5,6],[7,8],[9,10]]
C=[[11,12],[13,14],[15,10]]
即 2D,但一维的所有长度都不同。我如何将它们组合成一个 3D 数组,例如 combinedArrays[0]
returns A,或 combinedArrays[:,0]
returns 所有第一行,等等?
我尝试了 np.append
、np.stack
和 np.concatenate
,但其中 none 有效。我可以用零扩展较小的矩阵,然后只填充顶部,但那会无缘无故地携带大量额外的零。
我强烈推荐你使用tensorflow.ragged.constant()
您可以使用以下代码创建一个:
import tensorflow as tf
t = [A,B,C]
digits = tf.ragged.constant(t)
然后你不仅可以按照你想要的方式切片,还可以使用tensorflow库中的其他方法,例如使用.numpy()
等
更多信息请参考:Link
import numpy as np
A=np.array([[1,2],[3,4]])
B=np.array([[5,6],[7,8],[9,10]])
C=np.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]]), [...]]
你也可以使用字典。