Python:当我使用“from scipy.sparse import *”时,'kron' 会创建稀疏矩阵吗?
Python: Does 'kron' create sparse matrix when I use ' from scipy.sparse import * '?
对于下面的代码,Mat是数组类型的矩阵,
a = kron(Mat,ones((8,1)))
b = a.flatten()
如果我不导入scipy.sparse包,a
是一个数组类型的矩阵,b
也可以执行。
如果我用'from scipy.sparse import *',a
是一个稀疏型矩阵,b
不能执行。
谁能告诉我为什么 kron
会给出不同的结果?
还有,flatten()是否可以应用于稀疏型矩阵?
from module import *
通常被认为是应用程序代码中的错误形式,因为您所看到的原因 - 它使得很难判断哪些模块功能来自,特别是如果您对多个模块执行此操作模块
现在,您有:
from numpy import *
# from scipy.sparse import *
a = kron(Mat,ones((8,1)))
b = a.flatten()
取消注释第二行可能会影响 ones
和 kron
的来源。但是除非你查一下 sparse 是否重新定义了这些,否则你不会知道。最好这样写:
import numpy as np
from scipy import sparse
a = np.kron(Mat, np.ones((8,1)))
b = a.flatten()
然后您可以将 np
换成 sparse
以使用稀疏版本,reader 会立即知道您使用的是哪一个。如果您尝试使用稀疏版本,而实际上并没有稀疏版本,则会出现错误。
对于下面的代码,Mat是数组类型的矩阵,
a = kron(Mat,ones((8,1)))
b = a.flatten()
如果我不导入scipy.sparse包,a
是一个数组类型的矩阵,b
也可以执行。
如果我用'from scipy.sparse import *',a
是一个稀疏型矩阵,b
不能执行。
谁能告诉我为什么 kron
会给出不同的结果?
还有,flatten()是否可以应用于稀疏型矩阵?
from module import *
通常被认为是应用程序代码中的错误形式,因为您所看到的原因 - 它使得很难判断哪些模块功能来自,特别是如果您对多个模块执行此操作模块
现在,您有:
from numpy import *
# from scipy.sparse import *
a = kron(Mat,ones((8,1)))
b = a.flatten()
取消注释第二行可能会影响 ones
和 kron
的来源。但是除非你查一下 sparse 是否重新定义了这些,否则你不会知道。最好这样写:
import numpy as np
from scipy import sparse
a = np.kron(Mat, np.ones((8,1)))
b = a.flatten()
然后您可以将 np
换成 sparse
以使用稀疏版本,reader 会立即知道您使用的是哪一个。如果您尝试使用稀疏版本,而实际上并没有稀疏版本,则会出现错误。