小编MSe*_*ert的帖子

如何使用C#在代码后面的asp.net中编写javascript

如何在使用C#的代码中编写asp.net中的JavaScript代码?

例如:当我单击要调用此java脚本代码的按钮时,我有单击按钮事件:

alert("You pressed Me!"); 
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用代码背后的java脚本.

javascript c# asp.net

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

如何计算函数的空间复杂度?

我理解基本的,如果我有这样的功能:

int sum(int x, int y, int z) {
  int r = x + y + z;
  return r;
}
Run Code Online (Sandbox Code Playgroud)

它需要3个单位的空间用于参数,1个用于局部变量,这永远不会改变,所以这是O(1).

但是,如果我有这样的功能怎么办:

void add(int a[], int b[], int c[], int n) {
    for (int i = 0; i < n; ++i) {
        c[i] = a[i] + b[0]
    }
}
Run Code Online (Sandbox Code Playgroud)

其中需要N个单位a,M个单位为bL个单位c,1个单位为in.所以它需要N+M+L+1+1大量的存储空间.

那么这里的空间复杂性大O会是什么?需要更高记忆的那个?也就是说,如果N比M和L更高的momery(从更高的意义上假设大于10**6) - 那么可以说空间复杂性是否O(N)与我们对时间复杂性的影响一样?

但是如果所有三个即a,b,c都没有太大差异

喜欢这个功能

void multiply(int a[], int b[], int c[][], …
Run Code Online (Sandbox Code Playgroud)

algorithm space-complexity

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

如何降级conda版本?

我需要在我的CentOS 6.7机器上将我的conda版本从4.3降级到4.2.这样做需要什么命令?

python anaconda conda

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

INFO menuinst_win32:__ init __(182):菜单:名称:'Anaconda $ {PY_VER} $ {PLATFORM}'

目前,当我更新软件包时,我收到了很多这些INFO消息:

$ conda update --all --yes
Fetching package metadata .................
Solving package specifications: .

Package plan for installation in environment C:\anacondadir:

The following packages will be UPDATED:

    ipython:   6.0.0-py35_1 --> 6.1.0-py35_0
    nbconvert: 5.1.1-py35_0 --> 5.2.1-py35_0
    testpath:  0.3-py35_0   --> 0.3.1-py35_0

testpath-0.3.1 100% |###############################| Time: 0:00:00   1.31 MB/s
ipython-6.1.0- 100% |###############################| Time: 0:00:00   2.77 MB/s
nbconvert-5.2. 100% |###############################| Time: 0:00:00   3.36 MB/s
INFO menuinst_win32:__init__(182): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', prefix: 'C:\anacondadir', env_name: 'None', mode: 'None', used_mode: 'user'
INFO menuinst_win32:__init__(182): Menu: name: 'Anaconda${PY_VER} ${PLATFORM}', …
Run Code Online (Sandbox Code Playgroud)

python logging conda

14
推荐指数
1
解决办法
6112
查看次数

Python:ufunc'add'不包含带有签名匹配类型的循环dtype('S21')dtype('S21')dtype('S21')

我有两个数据帧,它们都有一个Order ID和一个date.

我想在第一个数据帧中添加一个标志df1:如果一个记录具有相同的order id并且date在dataframe中df2,那么添加一个Y:

[ df1['R'] = np.where(orders['key'].isin(df2['key']), 'Y', 0)]
Run Code Online (Sandbox Code Playgroud)

为了实现这个目标,我要创建一个密钥,这将是的串联order_iddate,但是当我尝试下面的代码:

df1['key']=df1['Order_ID']+'_'+df1['Date']
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

ufunc 'add' did not contain a loop with signature matching types dtype('S21') dtype('S21') dtype('S21')
Run Code Online (Sandbox Code Playgroud)

df1看起来像这样:

Date | Order_ID | other data points ... 
201751 4395674  ...
201762 3487535  ...
Run Code Online (Sandbox Code Playgroud)

这些是数据类型:

df1.info()
RangeIndex: 157443 entries, 0 to 157442
Data columns (total 6 columns):
Order_ID                                 157429 non-null object
Date                                     157443 non-null …
Run Code Online (Sandbox Code Playgroud)

python numpy concatenation dataframe pandas

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

numpy ufuncs速度vs循环速度

我已经阅读了很多"避免与numpy循环".所以,我试过了.我正在使用此代码(简化版).一些辅助数据:

 In[1]: import numpy as np
        resolution = 1000                             # this parameter varies
        tim = np.linspace(-np.pi, np.pi, resolution) 
        prec = np.arange(1, resolution + 1)
        prec = 2 * prec - 1
        values = np.zeros_like(tim)
Run Code Online (Sandbox Code Playgroud)

我的第一个实现是for循环:

 In[2]: for i, ti in enumerate(tim):
           values[i] = np.sum(np.sin(prec * ti))
Run Code Online (Sandbox Code Playgroud)

然后,我摆脱了显式for循环,并实现了这一点:

 In[3]: values = np.sum(np.sin(tim[:, np.newaxis] * prec), axis=1)
Run Code Online (Sandbox Code Playgroud)

对于小型阵列来说,这个解决方案更快,但是当我扩大规模时,我有这样的时间依赖: 在此输入图像描述

我缺少什么或是正常行为?如果不是,在哪里挖?

编辑:根据评论,这里有一些额外的信息.用IPython中的测量的时间%timeit%%timeit,在新内核进行每一次运行.我的笔记本电脑是acer aspire v7-482pg(i7,8GB).我正在使用:

  • python 3.5.2
  • numpy 1.11.2 + mkl
  • Windows 10

python performance for-loop numpy numpy-ufunc

13
推荐指数
1
解决办法
2878
查看次数

将NumPy数组转换为集合需要太长时间

我正在尝试执行以下操作

from numpy import *
x = array([[3,2,3],[711,4,104],.........,[4,4,782,7845]])  # large nparray
for item in x:
    set(item)
Run Code Online (Sandbox Code Playgroud)

与以下相比需要很长时间:

x = array([[3,2,3],[711,4,104],.........,[4,4,782,7845]])  # large nparray
for item in x:
    item.tolist()
Run Code Online (Sandbox Code Playgroud)

为什么将NumPy数组转换为a而set不是a list?需要更长的时间?我的意思是基本上都有复杂性O(n)

python arrays performance numpy set

13
推荐指数
1
解决办法
1419
查看次数

numpy.cov()异常:'float'对象没有属性'shape'

我有一个不同植物物种的数据集,我将每个物种分成不同的物种np.array.

当试图从这些物种中生成高斯模型时,我不得不计算每个不同标签的平均值和协方差矩阵.

问题是:当np.cov()在其中一个标签中使用时,该函数会引发错误"'float'对象没有属性'shape'",我无法确定问题的来源.我正在使用的确切代码行如下:

covx = np.cov(label0, rowvar=False)
Run Code Online (Sandbox Code Playgroud)

哪个label0是numpy ndarray of shape(50,3),其中列代表不同的变量,每行是不同的观察.

确切的错误跟踪是:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-81-277aa1d02ff0> in <module>()
      2 
      3 # Get the covariances
----> 4 np.cov(label0, rowvar=False)

C:\Users\Matheus\Anaconda3\lib\site-packages\numpy\lib\function_base.py in cov(m, y, rowvar, bias, ddof, fweights, aweights)
   3062             w *= aweights
   3063 
-> 3064     avg, w_sum = average(X, axis=1, weights=w, returned=True)
   3065     w_sum = w_sum[0]
   3066 

C:\Users\Matheus\Anaconda3\lib\site-packages\numpy\lib\function_base.py in average(a, axis, weights, returned)
   1143 
   1144     if returned:
-> 1145         if scl.shape …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy attributeerror

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

究竟`functools.partial`正在制作什么?

CPython 3.6.4:

from functools import partial

def add(x, y, z, a):
    return x + y + z + a

list_of_as = list(range(10000))

def max1():
    return max(list_of_as , key=lambda a: add(10, 20, 30, a))

def max2():
    return max(list_of_as , key=partial(add, 10, 20, 30))
Run Code Online (Sandbox Code Playgroud)

现在:

In [2]: %timeit max1()
4.36 ms ± 42.3 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [3]: %timeit max2()
3.67 ms ± 25.9 µs per loop (mean ± std. dev. of …
Run Code Online (Sandbox Code Playgroud)

python performance cpython python-internals functools

13
推荐指数
1
解决办法
736
查看次数

调用numba jit函数时,cProfile会增加很多开销

将纯Python无操作函数与装饰的无操作函数进行比较@numba.jit,即:

import numba

@numba.njit
def boring_numba():
    pass

def call_numba(x):
    for t in range(x):
        boring_numba()

def boring_normal():
    pass

def call_normal(x):
    for t in range(x):
        boring_normal()
Run Code Online (Sandbox Code Playgroud)

如果我们计算时间%timeit,我们会得到以下结果:

%timeit call_numba(int(1e7))
792 ms ± 5.51 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

%timeit call_normal(int(1e7))
737 ms ± 2.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
Run Code Online (Sandbox Code Playgroud)

一切都很合理; numba函数的开销很小,但并不多.

但是,如果我们使用cProfile这个代码进行分析,我们会得到以下结果:

cProfile.run('call_numba(int(1e7)); call_normal(int(1e7))', sort='cumulative')

   ncalls  tottime  percall  cumtime  percall …
Run Code Online (Sandbox Code Playgroud)

python performance profiling cprofile numba

13
推荐指数
1
解决办法
522
查看次数