将Matrix的行分配给新Matrix

时间:2017-11-04 18:37:01

标签: python numpy matrix

我有一个名为v1的矩阵,我想创建另一个名为matriz1的矩阵,它只有长度为v1 * 2/3的项目

v1=np.matrix('1,2;3,4;2,6;4,5')
distancia=len(v1)
distancia=distancia*2/3
matriz1=np.matrix
print(distancia)
k=0
print()
print()
print('matriz1')
for k in range(0,(int(distancia))):
    matriz1[k]=v1[k]
    k=k+1
print(matriz1)

错误是:TypeError

      Traceback (most recent call last)
<ipython-input-206-1ed800e332a1> in <module>()
     77 print('matriz1')
     78 for k in range(0,(int(distancia))):
---> 79     matriz1[k]=v1[k]
     80     k=k+1
     81 print(matriz1)

TypeError: 'type' object does not support item assignment

我知道我没有定义该矩阵的长度。我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:3)

您不会创建新矩阵,只需给np.matrix另一个名称matriz1

对于numpy,你不需要循环,只需使用索引切片:

v1 = np.matrix('1,2;3,4;2,6;4,5')
distancia = len(v1) * 2 // 3
matriz1 = v1[:distancia].copy()