草庐IT

numpy-ndarray

全部标签

python - 如何将 numpy.matrix 或数组转换为 scipy 稀疏矩阵

对于SciPy稀疏矩阵,可以使用todense()或toarray()转换为NumPy矩阵或数组。做逆运算的函数是什么?我搜索了,但不知道哪些关键字应该是正确的。 最佳答案 您可以在初始化稀疏矩阵时将numpy数组或矩阵作为参数传递。例如,对于CSR矩阵,您可以执行以下操作。>>>importnumpyasnp>>>fromscipyimportsparse>>>A=np.array([[1,2,0],[0,0,3],[1,0,4]])>>>B=np.matrix([[1,2,0],[0,0,3],[1,0,4]])>>>Aarra

python - 为什么 Numpy 中的 0d 数组不被视为标量?

当然,0d数组是标量,但Numpy似乎不这么认为......我错过了什么还是我只是误解了这个概念?>>>foo=numpy.array(1.11111111111,numpy.float64)>>>numpy.ndim(foo)0>>>numpy.isscalar(foo)False>>>foo.item()1.11111111111 最佳答案 人们不应该想太多。这最终对个人的心理健康和长寿有好处。Numpy标量类型的奇怪情况是因为没有优雅且一致的方法将1x1矩阵降级为标量类型。尽管在数学上它们是相同的东西,但它们由非常不同的代码处

python - 为什么 Numpy 中的 0d 数组不被视为标量?

当然,0d数组是标量,但Numpy似乎不这么认为......我错过了什么还是我只是误解了这个概念?>>>foo=numpy.array(1.11111111111,numpy.float64)>>>numpy.ndim(foo)0>>>numpy.isscalar(foo)False>>>foo.item()1.11111111111 最佳答案 人们不应该想太多。这最终对个人的心理健康和长寿有好处。Numpy标量类型的奇怪情况是因为没有优雅且一致的方法将1x1矩阵降级为标量类型。尽管在数学上它们是相同的东西,但它们由非常不同的代码处

python - 如何将 numpy.linalg.norm 应用于矩阵的每一行?

我有一个二维矩阵,我想对每一行取范数。但是当我直接使用numpy.linalg.norm(X)时,它需要整个矩阵的范数。我可以通过使用for循环对每一行取范数,然后对每个X[i]取范数,但由于我有30k行,这需要很长时间。有什么建议可以找到更快的方法吗?或者是否可以将np.linalg.norm应用于矩阵的每一行? 最佳答案 对于numpy1.9+请注意,如perimosocordiaeshows,从NumPy1.9版开始,np.linalg.norm(x,axis=1)是计算L2-norm的最快方法。对于numpy如果您正在计算L

python - 如何将 numpy.linalg.norm 应用于矩阵的每一行?

我有一个二维矩阵,我想对每一行取范数。但是当我直接使用numpy.linalg.norm(X)时,它需要整个矩阵的范数。我可以通过使用for循环对每一行取范数,然后对每个X[i]取范数,但由于我有30k行,这需要很长时间。有什么建议可以找到更快的方法吗?或者是否可以将np.linalg.norm应用于矩阵的每一行? 最佳答案 对于numpy1.9+请注意,如perimosocordiaeshows,从NumPy1.9版开始,np.linalg.norm(x,axis=1)是计算L2-norm的最快方法。对于numpy如果您正在计算L

python - NumPy 中的加权标准差

numpy.average()有一个权重选项,但numpy.std()没有。有人有解决方法的建议吗? 最佳答案 以下简短的“手动计算”怎么样?defweighted_avg_and_std(values,weights):"""Returntheweightedaverageandstandarddeviation.values,weights--Numpyndarrayswiththesameshape."""average=numpy.average(values,weights=weights)#Fastandnumerica

python - NumPy 中的加权标准差

numpy.average()有一个权重选项,但numpy.std()没有。有人有解决方法的建议吗? 最佳答案 以下简短的“手动计算”怎么样?defweighted_avg_and_std(values,weights):"""Returntheweightedaverageandstandarddeviation.values,weights--Numpyndarrayswiththesameshape."""average=numpy.average(values,weights=weights)#Fastandnumerica

python - 使用 numpy 在 Python 中处理 TIFF(导入、导出)

我需要一个python方法来打开TIFF图像并将其导入numpy数组,这样我就可以分析和修改像素数据,然后再次将它们保存为TIFF。(它们基本上是灰度的光强度图,代表每个像素的相应值)我找不到任何有关TIFF的PIL方法的文档。我试图弄清楚,但只有“错误模式”或“不支持文件类型”错误。我需要在这里使用什么? 最佳答案 首先,我从thispage下载了一张测试TIFF图像。称为a_image.tif。然后我用PIL像这样打开:>>>fromPILimportImage>>>im=Image.open('a_image.tif')>>>

python - 使用 numpy 在 Python 中处理 TIFF(导入、导出)

我需要一个python方法来打开TIFF图像并将其导入numpy数组,这样我就可以分析和修改像素数据,然后再次将它们保存为TIFF。(它们基本上是灰度的光强度图,代表每个像素的相应值)我找不到任何有关TIFF的PIL方法的文档。我试图弄清楚,但只有“错误模式”或“不支持文件类型”错误。我需要在这里使用什么? 最佳答案 首先,我从thispage下载了一张测试TIFF图像。称为a_image.tif。然后我用PIL像这样打开:>>>fromPILimportImage>>>im=Image.open('a_image.tif')>>>

python - 连接 Numpy 数组而不复制

在Numpy中,我可以使用np.append或np.concatenate端到端连接两个数组:>>>X=np.array([[1,2,3]])>>>Y=np.array([[-1,-2,-3],[4,5,6]])>>>Z=np.append(X,Y,axis=0)>>>Zarray([[1,2,3],[-1,-2,-3],[4,5,6]])但是这些会复制他们的输入数组:>>>Z[0,:]=0>>>Zarray([[0,0,0],[-1,-2,-3],[4,5,6]])>>>Xarray([[1,2,3]])有没有办法将两个数组连接成一个View,即不复制?这需要np.ndarray子类