Python 通过相同数组扩展数组的数组间隔
我必须为机器学习目的设置一个输入张量,如下所示:Python 通过相同数组扩展数组的数组间隔,python,arrays,numpy,tensorflow,data-science,Python,Arrays,Numpy,Tensorflow,Data Science,我必须为机器学习目的设置一个输入张量,如下所示: tensor=array[array[object_1],array[object_2],...,array[object_n]] np.shape(tensor)=(a,n,6) 现在每个对象数组都是一维的,比如说6个条目是描述它们的变量。 我想用另外4个条目扩展这6个条目。此扩展信息的变量保存在数组中 np.shape(extra_information)=(a,m,4) #m<n 编辑: 进一步澄清这个问题。以二维为例: tens
tensor=array[array[object_1],array[object_2],...,array[object_n]]
np.shape(tensor)=(a,n,6)
现在每个对象数组都是一维的,比如说6个条目是描述它们的变量。
我想用另外4个条目扩展这6个条目。此扩展信息的变量保存在数组中
np.shape(extra_information)=(a,m,4) #m<n
编辑:
进一步澄清这个问题。以二维为例:
tensor=[[1,2,3],[3,4,5],[6,7,8],....,[...]]
extra_information=[[a],[b],[c],....[...]]
extra_information_intervall=[[0,2],[3,4],...,[0,0]]
由于zerro填充,额外信息的形状是(a,n,4)
,但它只包含m项的信息,并且在n和m之间用零填充。这同样适用于额外信息\u间隔时间。
现在的目标是将这些信息合并成张量:
tensor=[[1,2,3,a],[3,4,5,a],[6,7,8,b],....,[...,0]]
IIUC,你有一个(a,n,6)
张量,它由n
对象组成,其中一些是区间对象。这些间隔对象除了已有的6个功能外,还有4个其他功能。包含这4个特征的张量是(a,m,4)
,你可以详细说明一下这个语句-m小于n,因为额外信息中的每个数组都代表一个对象的间隔。
你说的间隔对象是什么意思?间隔[0,2]等在范围内是可变的吗?是的,它可以是[12,24]也可以是[0,1]。此范围内的所有元素都将添加相同的信息。我已更新了代码。这应该能满足你的需要。请阅读我答案中的最后一段进行解释。一定要让我知道这是否对你有效。我已经对这个问题和我的进展做了一些澄清。谢谢你的帮助。
tensor=[[1,2,3],[3,4,5],[6,7,8],....,[...]]
extra_information=[[a],[b],[c],....[...]]
extra_information_intervall=[[0,2],[3,4],...,[0,0]]
tensor=[[1,2,3,a],[3,4,5,a],[6,7,8,b],....,[...,0]]
ORIGINAL ADDITIONAL
Obj0 [......] --> Obj0 [....]
Obj1 [......]
Obj2 [......]
Obj3 [......] --> Obj3 [....]
Obj4 [......]
Obj5 [......]
Obj6 [......] --> Obj6 [....]
Obj7 [......]
Obj8 [......]
a = np.random.random((2,10,6))
b = np.random.random((2,5,4))
s = np.array([2,3,2,2,1]) #Number of elements = number of objects m
#Sum of elements = number of objects n
new_b = np.repeat(b, s, axis=1)
#new_b shape = (2,10,4)
out = np.dstack((a, new_b))
out.shape
(2, 10, 10)
ORIGINAL ADDITIONAL
Obj0 [......] --> Obj0 [....]
Obj1 [......] --> Obj0 [....]
Obj2 [......] --> Obj0 [....]
Obj3 [......] --> Obj3 [....]
Obj4 [......] --> Obj3 [....]
Obj5 [......] --> Obj3 [....]
Obj6 [......] --> Obj6 [....]
Obj7 [......] --> Obj6 [....]
Obj8 [......] --> Obj6 [....]
s = np.array([2,3,2,2,1]) #Number of elements = number of objects m
#Sum of elements = number of objects n
#First object from m objects will repeat 2 times,
#second will repeat 3 times, etc...
#Total number of objects created after
#repetitions = 10 = objects in original tensor.