我正在尝试“规范化”训练集的形状 这样我就可以将它们送入香草神经网络。
输入始终具有相同数量的表示要素的“通道”/列 但对于给定的“y”具有不同的行数
是否有python或numpy或其他实用程序可以作为输入的矩阵 尺寸(m,n)的浮子并将其拉伸到给定尺寸的(m,o),其中o> 0。 ñ 通过在平均值
的新形状中插入行实施例: 我有一个形状数组(4,4),但要求我的数组是(7,4)
[
[1,1,1,1],
[2,2,2,2],
[1,1,1,1],
[4,4,4,4]
]
会变成
[
[1,1,1,1],
[1.5,1.5,1.5,1.5],
[2,2,2,2],
[1.5,1.5,1.5,1.5],
[1,1,1,1],
[2.5,2.5,2.5,2.5],
[4,4,4,4]
]
插入的行之间的平均值之间的平均值 和之后的那个 有什么想法吗?
答案 0 :(得分:0)
你需要调用insert_row(ar,positions),其中ar是要插入行的2d数组,position是位置列表。它返回一个插入行的numpy数组 尝试以下代码:
import numpy as np
ar = [
[1,1,1,1],
[2,2,2,2],
[1,1,1,1],
[4,4,4,4]
]
def insert_row(ar,positions):
ar = np.array(ar)
v = ar
count = 0
for i in positions:
a = np.add(ar[i,:],ar[i+1,:])/2
v = np.vstack([v[0:i+count+1,:],a,v[i+count+1:,:]])
count+=1
return v
输出:
print(insert_row(ar, [1,2]))
[[ 1. 1. 1. 1. ]
[ 2. 2. 2. 2. ]
[ 1.5 1.5 1.5 1.5]
[ 1. 1. 1. 1. ]
[ 2.5 2.5 2.5 2.5]
[ 4. 4. 4. 4. ]]
print(insert_row(ar, [0]))
[[ 1. 1. 1. 1. ]
[ 1.5 1.5 1.5 1.5]
[ 2. 2. 2. 2. ]
[ 1. 1. 1. 1. ]
[ 4. 4. 4. 4. ]]