numpy中二元矩阵的有效处理

sky*_*ork 4 python numpy matrix

通过二进制矩阵,我的意思是矩阵中的每个元素都是0或1,我Matrix在numpy中使用了这个类.

首先,numpy中是否存在特定类型的矩阵,或者我们只是使用填充0和1的矩阵?

第二,根据类的维度,创建一个满0方阵最快方法是什么?注意:不是我想要的,因为它创建了一个带浮点数的二维数组Matrixnumpy.zeros((dim, dim))0.

第三,我想经常得到并设置矩阵的任何给定行.对于get,我可以考虑使用row = my_matrix.A[row_index].tolist(),它将返回给定行的列表表示.对于set,似乎我可以这样做my_matrix[row_index] = row_list,row_list作为与给定行相同长度的列表.我再次想知道它们是否是最有效的工作方法.

unu*_*tbu 7

要创建一个numpy数组,其元素可以是0或1,请使用以下dtype = 'bool'参数:

arr = np.zeros((dim,dim), dtype = 'bool')
Run Code Online (Sandbox Code Playgroud)

或者,转换arr为numpy矩阵:

arr = np.matrix(arr)
Run Code Online (Sandbox Code Playgroud)

要访问一行:

arr[row_num]
Run Code Online (Sandbox Code Playgroud)

并设置一行:

arr[row_num] = new_row
Run Code Online (Sandbox Code Playgroud)

是最快捷的方式.

  • "True"和"False"基本上与"0"和"1"相同 - 只需在交互式解释器中尝试这些表达式:"0 == False","3*True". (3认同)
  • @SvenMarnach它们是相同的,但是“True”和“False”占用8位,“0”和“1”(在Python中)也是如此。如果有 numpy 数组,其条目是实际的位,那就太好了...... (2认同)