Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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_Numpy_Tensorflow_Data Science - Fatal编程技术网

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.