我基本上有一个for循环,其每次迭代的输出是1000维数组以及矢量标识符([001],[010]或[100]之一))。我希望将数组与相应的矢量标识符一起存储在文件中的每次迭代中,这样当我加载文件时,第一列是数组,第二列是标识符。
我尝试将其存储在矩阵中(比如M):并说:
M=np.zeros((1000,2))
for i in range(1000):
some operation that outputs 1x100 array X and 1x3 identifier Y
M[i][0]=X
M[i][1]=Y
np.save('output.txt', M)
像这样......
我明白为什么分配不起作用。酸洗也会返回错误。知道如何存储它吗?
然后我想使用岭回归来找到大小为100x3的一个矩阵Wout,这样它最适合在所有1000个数据集上优化的X.Wout = Y.知道怎么做吗?
答案 0 :(得分:0)
看起来您正在尝试创建这样的列表:
In [140]: M=[]
In [141]: for i in range(5):
...: X = np.arange(i,i+4)
...: Y = [0,1,1]
...: M.append([X,Y])
...:
In [142]: M
Out[142]:
[[array([0, 1, 2, 3]), [0, 1, 1]],
[array([1, 2, 3, 4]), [0, 1, 1]],
[array([2, 3, 4, 5]), [0, 1, 1]],
[array([3, 4, 5, 6]), [0, 1, 1]],
[array([4, 5, 6, 7]), [0, 1, 1]]]
可以将其转换为2d对象数组:
In [143]: Ma=np.array(M, object)
In [144]: Ma
Out[144]:
array([[array([0, 1, 2, 3]), [0, 1, 1]],
[array([1, 2, 3, 4]), [0, 1, 1]],
[array([2, 3, 4, 5]), [0, 1, 1]],
[array([3, 4, 5, 6]), [0, 1, 1]],
[array([4, 5, 6, 7]), [0, 1, 1]]], dtype=object)
In [145]: Ma.shape
Out[145]: (5, 2)
In [146]: Ma[:,0]
Out[146]:
array([array([0, 1, 2, 3]), array([1, 2, 3, 4]), array([2, 3, 4, 5]),
array([3, 4, 5, 6]), array([4, 5, 6, 7])], dtype=object)