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

Python 将矩阵的行指定给新矩阵

Python 将矩阵的行指定给新矩阵,python,numpy,matrix,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]

我有一个名为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)
      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
错误是: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
回溯(最近一次呼叫上次)
在()
77打印('matriz1')
78表示范围(0)内的k(int(距离)):
--->79矩阵1[k]=v1[k]
80 k=k+1
81打印(matriz1)
TypeError:“类型”对象不支持项分配

我知道我不是在定义矩阵的长度。我能做些什么来解决它呢?

你不需要创建一个新的矩阵,只需要给
np.matrix
另一个名字
matriz1

      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
对于numpy,您不需要循环,只需使用索引切片:

      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
v1 = np.matrix('1,2;3,4;2,6;4,5')
distancia = len(v1) * 2 // 3
matriz1 = v1[:distancia].copy()

考虑正确初始化<代码> MatRZ1,如<代码> MatRIZ1= NP。空((3,2))< /代码>。但是想象一下V1是一个矩阵,它是在别的地方创建的,我不知道长度和元素。我只希望新矩阵的长度是2/3,元素的长度是2/3。不是v1矩阵的具体形式@VasilisG。在本例中,请尝试以下操作:
matriz1=np.empty((int(v1.shape[0]*2/3),v1.shape[1])
以获取矩阵长度的2/3。另外,将上一个print语句替换为
print(matriz1.astype(int))
,以将它们作为整数。给出错误:切片索引必须为整数或无,或具有索引method@M.K必须使用整数除法
/