小编Bas*_*aya的帖子

尽管我打电话给pyplot.show(),matplotlib也没有显示我的图画

matplotlib需要帮助.是的,我没有忘记调用pyplot.show().

$ ipython --pylab

import matplotlib.pyplot as p 
p.plot(range(20), range(20))
Run Code Online (Sandbox Code Playgroud)

matplotlib.lines.Line2D at 0xade2b2c作为输出返回.

p.show()
Run Code Online (Sandbox Code Playgroud)

没有任何事情发生.没有错误消息.没有新窗口.没有.我matplotlib使用pip 安装,我没有收到任何错误消息.

细节:

我用,

  • Ubuntu的
  • IPython v0.11
  • Python v2.6.6
  • matplotlib v1.0.1

python matplotlib tech-chat-ml

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

为什么Python对于简单的for循环来说太慢了?

我们正在使用Python 制作一些kNNSVD实现.其他人选择了Java.我们的执行时间非常不同.我使用cProfile来查看我在哪里犯错但实际上一切都很好.是的,我numpy也用.但我想问一个简单的问题.

total = 0.0
for i in range(9999): # xrange is slower according 
    for j in range(1, 9999):            #to my test but more memory-friendly.
        total += (i / j)
print total
Run Code Online (Sandbox Code Playgroud)

这段代码在我的电脑上占用了31.40秒.

此代码的Java版本在同一台计算机上占用1秒或更短时间.我想,类型检查是这段代码的主要问题.但我应该为我的项目做很多这样的操作,我认为9999*9999不是那么大的数字.

我想我犯了错​​误,因为我知道Python被很多科学项目所使用.但是为什么这段代码这么慢,我怎么能处理比这更大的问题呢?

我应该使用JIT编译器Psyco吗?

编辑

我还说这个循环问题只是一个例子.代码并不像这样简单,可能很难将改进/代码示例付诸实践.

另一个问题是,我可以实现大量的数据挖掘和机器学习算法与numpyscipy,如果我正确地使用它?

python performance jit

43
推荐指数
8
解决办法
4万
查看次数

当我使用pearsonr时遇到无效值

也许我犯了一个错误.如果是这样,我很抱歉问这个.

我想通过使用scipy的函数来计算Pearson的相关系数pearsonr.

from scipy.stats.stats import pearsonr

X = [4, 4, 4, 4, 4, 4]
Y = [4, 5, 5, 4, 4, 4]

pearsonr(X, Y)
Run Code Online (Sandbox Code Playgroud)

我在下面收到错误

RuntimeWarning:double_scalars中遇到的值无效###

我得到错误的原因是E [X] = 4(X的例外值是4)

我在scpy.stats.stats.py中查看pearsonr函数的代码.pearsonr函数的某些部分如下.

mx = x.mean() # which is 4
my = y.mean() # not necessary
xm, ym = x-mx, y-my # xm = [0 0 0 0 0 0]
r_num = n*(np.add.reduce(xm*ym)) #r_num = 0, because xm*ym 1x6 Zero Vector.
r_den = n*np.sqrt(ss(xm)*ss(ym)) #r_den = 0
r = …
Run Code Online (Sandbox Code Playgroud)

python scipy correlation

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

在稀疏矩阵中排序

我有一个稀疏矩阵.我需要逐行对此矩阵进行排序并创建另一个[稀疏]矩阵.代码可以更好地解释它:

# for `rand` function, you need newer version of scipy.
from scipy.sparse import *
m = rand(6,6, density=0.6)
d = m.getrow(0)
print d
Run Code Online (Sandbox Code Playgroud)

输出1

(0, 5) 0.874881629788 
(0, 4) 0.352559852239 
(0, 2) 0.504791645463 
(0, 1) 0.885898140175
Run Code Online (Sandbox Code Playgroud)

我有这个m矩阵.我想创建一个m的排序版本的新矩阵.新矩阵包含这样的第0行.

new_d = new_m.getrow(0)
print new_d
Run Code Online (Sandbox Code Playgroud)

输出2

(0, 1) 0.885898140175
(0, 5) 0.874881629788  
(0, 2) 0.504791645463
(0, 4) 0.352559852239
Run Code Online (Sandbox Code Playgroud)

所以我可以获得哪个列更大等:

print new_d.indices
Run Code Online (Sandbox Code Playgroud)

OUTPUT3

array([1, 5, 2, 4])
Run Code Online (Sandbox Code Playgroud)

当然,每行应该如上所述独立排序.

我有一个解决这个问题的方法,但它并不优雅.

python sorting scipy sparse-matrix

8
推荐指数
2
解决办法
7466
查看次数

无法使用元组作为字典键?

代码有点复杂,抱歉.请关注该parallel_p功能.虽然sign是一个元组,但Python抱怨道:

if sign in hashtable并给出一个TypeError.为什么sign一个numpy.ndarray,而不是一个元组?我把它创建为一个元组.

p_dist = dict()

def parallel_prog(hashtable):
    def wrapper(func):
        if parallel_programming:
            @wraps(func)
            def parallel_p(*args, **kwargs):
                sign = tuple(args) 
                print type(sign)
                if sign in hashtable:
                    r = hashtable[sign] # hit.
                    return r
                r = func(*args, **kwargs)
                hashtable[tuple(sign)] = r # register for future hits.
                return r
            return parallel_p
        else:
            return func
    return wrapper


@parallel_prog(p_dist)
def euclidean(a, b, signature=None):

    val = np.sqrt(np.add.reduce((a - b)**2))
    return val
Run Code Online (Sandbox Code Playgroud)

在测试模块中

class …
Run Code Online (Sandbox Code Playgroud)

python typeerror hashable

5
推荐指数
1
解决办法
6156
查看次数

在稀疏矩阵中采用对数函数的有效方法

我有一个很大的稀疏矩阵.我想采取log4稀疏矩阵中的所有元素.

我尝试使用,numpy.log()但它不适用于矩阵.

我也可以逐行取对数.然后我用一个新的粉碎旧行.

# Assume A is a sparse matrix (Linked List Format) with float values as data
# It is only for one row

import numpy as np
c = np.log(A.getrow(0)) / numpy.log(4)
A[0, :] = c
Run Code Online (Sandbox Code Playgroud)

这并不像我预期的那么快.有更快的方法吗?

python numpy matrix scipy sparse-matrix

5
推荐指数
2
解决办法
2902
查看次数