小编Sau*_*tro的帖子

计算稀疏矩阵的相似性

我正在使用Python与numpy,scipy和scikit-learn模块.

我想用非常大的稀疏矩阵对数组进行分类.(100,000*100,000)

矩阵中的值等于0或1.我唯一拥有的是value = 1的索引.

a = [1,3,5,7,9] 
b = [2,4,6,8,10]
Run Code Online (Sandbox Code Playgroud)

意思是

a = [0,1,0,1,0,1,0,1,0,1,0]
b = [0,0,1,0,1,0,1,0,1,0,1]
Run Code Online (Sandbox Code Playgroud)

如何在scipy中将索引数组更改为稀疏数组?

如何快速对这些阵列进行分类?

非常感谢你.

python numpy classification scipy sparse-matrix

6
推荐指数
1
解决办法
844
查看次数

如何在numpy内连接两个数组?

我有两个数组看起来像这样:

A:

20131010 123 12321 12312312
20131011 123 12321 12312312
20131012 123 12321 12312312
20131013 123 12321 12312312
Run Code Online (Sandbox Code Playgroud)

B:

20131010 bbbb sad sadsad
20131011 asd asdd asdad
20231012 123 12321 12312312
20141013 123 12321 12312312
20141023 123 12321 12312312
Run Code Online (Sandbox Code Playgroud)

现在我需要在第一列(日期)内连接这两个数组,结果应如下所示:

20131010 123 12321 12312312 bbbb sad sadsad
20131011 123 12321 12312312 asd asdd asdad
Run Code Online (Sandbox Code Playgroud)

我怎么做到的?请注意,每个列都有很多列,所以我不能命名每一列,但比较列确实只有一列.

python arrays numpy

6
推荐指数
1
解决办法
2856
查看次数

SymPy,使用已知模式或子表达式进行简化/替换

我有以下表达式:

from sympy import pi, sin, cos, var, simplify
var('j,u,v,w,vt,wt,a2,t,phi')

u0 = v*a2*sin(pi*j/2 + pi*j*t*phi**(-1)/2) + pi*vt*a2*cos(pi*j/2 + pi*j*t*phi**(-1)/2)*j*phi**(-1)/2 + pi*w*a2*cos(pi*j/2 + pi*j*t*phi**(-1)/2)*j*phi**(-1)
Run Code Online (Sandbox Code Playgroud)

哪个可以简化:

print simplify(u0)
#a2*(pi*j*vt*cos(pi*j*(phi + t)/(2*phi)) + 2*pi*j*w*cos(pi*j*(phi + t)/(2*phi)) + 2*phi*v*sin(pi*j*(phi + t)/(2*phi)))/(2*phi)
Run Code Online (Sandbox Code Playgroud)

给出子表达式:

bj = pi*j*(phi + t)/(2*phi)
cj = j*pi/(2*phi)
Run Code Online (Sandbox Code Playgroud)

目前我手动替换bjcj在简化u0表达式中获取:

u0 = a2*(v*sin(bj) + cj*vt*cos(bj) + 2*cj*w*cos(bj))
Run Code Online (Sandbox Code Playgroud)

是否可以使用SymPy来实现这一点,避免手动替换?

python symbolic-math sympy substitution symbolic-computation

6
推荐指数
1
解决办法
3281
查看次数

在Python中绘制多项式

我不熟悉Python的一些基本知识matplotlib.pyplot.我的问题是如何绘制一些更高次多项式?我看到的一种方法是用x表示y,然后绘制值.但我有两个困难:

  1. y和x不能分开.
  2. 我期待一条曲线(实际上是一条复杂的曲线)

我试图绘制的多项式是:

c0 + c1*x + c2*y +c3*x*x + c4*x*y + c5*y*y + c6*x**3 + c7*x**2*y + ..... c26*x*y**5 + c27*y**6
Run Code Online (Sandbox Code Playgroud)

所有的系数c0c27是已知的.如何绘制此曲线?

您还可以向我推荐一些资源,我可以从中学习Python中的绘图和可视化吗?

澄清: 对不起每个人都说不够清楚.它不是表面的方程(涉及3个变量:x,y和z).我应该在最后加零:c0 + c1*x + c2*y + c3*x*x + c4*x*y + c5*y*y + c6*x**3 + c7*x**2*y + ..... c26*x*y**5 + c27*y**6 = 0

python curve numpy matplotlib

6
推荐指数
1
解决办法
2万
查看次数

如何使用scipy.interpolate中的griddata

我有一个三列(x像素,y像素,z值)数据,有一百万行.数据来自图像,并且存在重复的z值.现在我需要制作表面图.这个图像是一个很好的例子.但现在输出图像为空.有人可以查一下代码吗?

import numpy as np
from enthought.mayavi import mlab
from scipy.interpolate import griddata
x,y,z = np.loadtxt('test.csv',delimiter=',',usecols=(0,1,2),unpack=True) 
xi,yi = np.mgrid[0:3000:3000j, 0:3000:3000j]
zi = griddata((x, y), z, (xi, yi),method='linear')
mlab.surf(xi,yi,zi)
mlab.show()
Run Code Online (Sandbox Code Playgroud)

python interpolation numpy scipy mayavi

6
推荐指数
1
解决办法
1万
查看次数

python threading.Event:添加事件参数

我是否可以使用来自线程模块的Event对象,不仅可以通知某些事件已发生,还可以提供此事件的一些参数,例如:

e = Event()
...
e.param = "this is event data"
e.set()
Run Code Online (Sandbox Code Playgroud)

另一个线程:

e.wait()
data = e.param
Run Code Online (Sandbox Code Playgroud)

乍一看似乎没问题,但有什么问题可以发生吗?安全吗?如果没有,还有什么方法可以更好地在线程之间传递一些事件参数?

感谢名单.

python multithreading

6
推荐指数
1
解决办法
1911
查看次数

Python,如何填充空 numpy 数组中的列

我通常会去

http://docs.scipy.org
Run Code Online (Sandbox Code Playgroud)

获取此信息,但他们的网站由于某种原因关闭了:/

但是我如何才能填充 numpy 矩阵中的整列呢?

a = numpy.zeros(shape=(100,10))
a[0] = [1,2,3,4,5,6,7,8,9,0]
Run Code Online (Sandbox Code Playgroud)

填满一行,但是如何填满一列呢?

python arrays numpy

6
推荐指数
1
解决办法
1万
查看次数

连续二维切片上的 Numpy 矢量化函数

我有一个 3D numpy 数组。我想通过在沿轴的连续 2d 切片上执行函数并将生成的切片堆叠在一起来形成一个新的 3d 数组。显然,有很多方法可以做到这一点;我想以最简洁的方式做到这一点。我认为这是可能的numpy.vectorize,但这似乎产生了一个迭代数组中每个值的函数,而不是沿第一个轴移动的二维切片。

基本上,我想要看起来像这样的代码:

new3dmat = np.vectorize(func2dmat)(my3dmat)
Run Code Online (Sandbox Code Playgroud)

并完成与此相同的事情:

new3dmat = np.empty_like(my3dmat)
for i in range(my3dmat.shape[0]):
  new3dmat[i] = func2dmat(my3dmat[i])
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python arrays numpy vectorization

6
推荐指数
1
解决办法
763
查看次数

继承自scipy.sparse.csr_matrix类

我想scipy.sparse.csr_matrix用一些方法来增加课程,并替换其他一些用于个人用途.我正在创建一个继承自的子类csr_matrix,如下:

class SparseMatrix(sp.csr_matrix):
    def __init__(self, matrix):
        super(type(self), self).__init__(matrix)
Run Code Online (Sandbox Code Playgroud)

这不会起作用,抛出:

AttributeError:找不到toSpa

你能告诉我我做错了什么吗?

python subclass scipy sparse-matrix

6
推荐指数
1
解决办法
1561
查看次数

两列不同维度的numpy数组的交集

我给出了两个不同的numpy数组.第一个是二维数组,看起来像(前十点):

[[  0.           0.        ]
 [ 12.54901961  18.03921569]
 [ 13.7254902   17.64705882]
 [ 14.11764706  17.25490196]
 [ 14.90196078  17.25490196]
 [ 14.50980392  17.64705882]
 [ 14.11764706  17.64705882]
 [ 14.50980392  17.25490196]
 [ 17.64705882  18.03921569]
 [ 21.17647059  34.11764706]]
Run Code Online (Sandbox Code Playgroud)

第二个数组只是一维的,看起来像(前十点):

[ 18.03921569  17.64705882  17.25490196  17.25490196  17.64705882
  17.64705882  17.25490196  17.64705882  21.17647059  22.35294118]
Run Code Online (Sandbox Code Playgroud)

第二个(一维)数组中的值可能出现在第一列中的第一个(二维)数组中.Fe 17.64705882

我想从二维数组中获取一个数组,其中第一列的值与第二个(一维)数组中的值匹配.怎么做?

python arrays axis numpy intersection

6
推荐指数
1
解决办法
729
查看次数