小编Cle*_*leb的帖子

Theano:如何采用元素为矩阵的"矩阵外部产品"

基本上,我有两个张量:A,其中A.shape = (N, H, D),和B,其中B.shape = (K, H, D).我想做的是得到一个张量C,其形状(N, K, D, H)如下:

C[i, j, :, :] = A[i, :, :] * B[j, :, :]. 
Run Code Online (Sandbox Code Playgroud)

这可以在Theano中有效地完成吗?

附注:我想要实现的实际最终结果是具有形状的张量E,(N, K, D)使得:

E[i, j, :] = (A[i, :, :]*B[j, :, :]).sum(0)
Run Code Online (Sandbox Code Playgroud)

所以,如果有办法直接得到这个,我更喜欢它(希望节省空间).

python numpy matrix theano

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

重叠yticklabels:是否可以控制seaborn中热图的单元尺寸?

我有一个包含大约200个观测值的数据集,我想将其绘制为热图.每个观察都有一个与之关联的字符串,我想显示它.我的问题是我无法读取这些标签,因为它们相互重叠.因此,我的问题是,是否可以某种方式将热图的单元格大小设置为字体大小yticklabel或是否有任何其他解决方法.

在下面的示例中,我使用随机数据进行说明:

import seaborn as sns
import numpy as np
data = np.random.rand(200, 10)
ax = sns.heatmap(data)
for item in ax.get_yticklabels():
    item.set_rotation(0)
Run Code Online (Sandbox Code Playgroud)

这给了我:

在此输入图像描述

有没有办法让这些yticklabels可读?在理想的情况下,我会有一个选项,允许我将单元格的高度设置为的字体大小yticklabels.那可能吗?

编辑:

正如评论中所提到的,一种可能性是增加数字的大小.我试过如下:

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(200, 10)

fig, ax = plt.subplots()
fig.set_size_inches(38.5, 10.5)

ax2 = sns.heatmap(data, ax=ax)
for item in ax2.get_yticklabels():
    item.set_rotation(0)
Run Code Online (Sandbox Code Playgroud)

这给了我相同的输出.我正确使用它吗?

python matplotlib heatmap axis-labels seaborn

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

LINQ查询结合了分组和排序

我相对较新LINQ,目前正在开发一个结合分组和排序的查询.我将从这里开始一个例子.基本上我有一个任意的数字序列表示为字符串:

List<string> sNumbers = new List<string> {"34521", "38450", "138477", "38451", "28384", "13841", "12345"}
Run Code Online (Sandbox Code Playgroud)

我需要sNumbers在此列表中找到包含搜索模式(例如"384")的所有内容,然后返回已过滤的序列,sNumbers以便首先对以搜索模式("384")开头的序列进行排序,然后对sNumbers包含搜索模式的剩余部分进行排序某处.所以它会是这样的(请注意组中的字母排序):

{"38450", "38451", "13841", "28384", "138477"}
Run Code Online (Sandbox Code Playgroud)

这是我开始的方式:

outputlist = (from n in sNumbers
                where n.Contains(searchPattern
                select n).ToList();
Run Code Online (Sandbox Code Playgroud)

所以现在我们拥有包含搜索模式的所有数字.这就是我被困的地方.我知道在这一点上我需要将结果"分组"成两个序列.一个以搜索模式开始,另一个不是.然后按字母顺序在每个组中应用辅助排序.如何编写一个结合了所有这些的查询?

c# linq sorting list

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

为什么max()有时会返回nan而有时会忽略它?

这个问题是由我刚才给出的答案推动的.

假设我有一个这样的数据帧

import numpy as np
import pandas as pd

df = pd.DataFrame({'a': [1, 2, np.nan], 'b': [3, np.nan, 10], 'c':[np.nan, 5, 34]})

     a     b     c
0  1.0   3.0   NaN
1  2.0   NaN   5.0
2  NaN  10.0  34.0
Run Code Online (Sandbox Code Playgroud)

而且我想用NaN行的最大值替换,我能做到

df.apply(lambda row: row.fillna(row.max()), axis=1)
Run Code Online (Sandbox Code Playgroud)

这给了我想要的输出

      a     b     c
0   1.0   3.0   3.0
1   2.0   5.0   5.0
2  34.0  10.0  34.0
Run Code Online (Sandbox Code Playgroud)

但是,当我使用时

df.apply(lambda row: row.fillna(max(row)), axis=1)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,仅在三种情况中的两种情况下才能正确替换它:

     a     b     c
0  1.0   3.0   3.0
1  2.0   5.0 …
Run Code Online (Sandbox Code Playgroud)

python replace missing-data pandas

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

在服务器重新启动时启用mysql事件调度程序

我正在运行phpmyadmin并在我的个人计算机上安装了apache服务器.我的问题是我试图将MySQL设置event_scheduler为始终启用,即使服务器重新启动.我正在通过在服务器配置文件(my.cnfmy.ini)中设置以下命令行来阅读它,它应该工作:event_scheduler=DISABLED.但是,我在哪里找到这个my.cnfmy.ini文件,并且命令行是否应该event_scheduler=DISABLED或者event_scheduler=ENABLED看到我希望它始终被启用?

mysql scheduling phpmyadmin

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

在Python中拟合分段函数

我正在尝试将分段定义的函数拟合到Python中的数据集。我已经搜索了很长一段时间,但是无论是否可行,我都没有找到答案。

为了让我对我正在尝试做的事情有印象,请看以下示例(对我而言不起作用)。在这里,我尝试将位移的绝对值函数(f(x)= | xp |)拟合到以p为拟合参数的数据集。

import scipy.optimize as so
import numpy as np

def fitfunc(x,p):
   if x>p:
      return x-p
   else:
      return -(x-p)

fitfunc = np.vectorize(fitfunc) #vectorize so you can use func with array

x=np.arange(1,10)
y=fitfunc(x,6)+0.1*np.random.randn(len(x))

popt, pcov = so.curve_fit(fitfunc, x, y) #fitting routine that gives error
Run Code Online (Sandbox Code Playgroud)

有什么办法可以在Python中完成这项工作吗?

在R中执行此操作的方法是:

# Fit of a absolute value function f(x)=|x-p|

f.lr <- function(x,p) {
    ifelse(x>p, x-p,-(x-p))
}
x <- seq(0,10)  #
y <- f.lr(x,6) + rnorm (length(x),0,2)
plot(y ~ x)
fit.lr <- nls(y ~ …
Run Code Online (Sandbox Code Playgroud)

python curve-fitting piecewise

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

为什么scipy.optimize.curve_fit不能正确匹配数据?

我一直在尝试使用一些功能来使用某些数据,scipy.optimize.curve_fit但我确实遇到了困难.我真的看不出为什么这不起作用的原因.

# encoding: utf-8
from __future__ import (print_function,
                        division,
                        unicode_literals,
                        absolute_import,
                        with_statement)
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as mpl

x, y, e_y = np.loadtxt('data.txt', unpack=True)

def f(x, a, k):
    return (1/(np.sqrt(1 + a*((k-x)**2))))

popt, pcov = curve_fit(f, x, y, maxfev = 100000000)

mpl.plot(x, f(x, *popt), 'r-', label='Fit')
mpl.plot(x, y, 'rx', label='Original')
mpl.legend(loc='best')
mpl.savefig('curve.pdf')
print(popt)

# correct values which should be calculated
# a=0.003097
# k=35.4
Run Code Online (Sandbox Code Playgroud)

这是由上层代码生成的情节图像: 在此输入图像描述

data.txt:
#x      y       e_y
4.4     0.79    0.13 …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib curve-fitting data-fitting

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

使用正则表达式选择数据

我有这样的数据帧

import pandas as pd

df = pd.DataFrame({'a': ['abc', 'r00001', 'r00010', 'rfoo', 'r01234', 'r1234'], 'b': range(6)})

        a  b
0     abc  0
1  r00001  1
2  r00010  2
3    rfoo  3
4  r01234  4
5   r1234  5
Run Code Online (Sandbox Code Playgroud)

我现在想要选择此数据框的所有列,其中列中的条目以后跟五个数字a开头r.

从这里我学会了如果r没有数字就开始这样做:

print df.loc[df['a'].str.startswith('r'), :]

        a  b
1  r00001  1
2  r00010  2
3    rfoo  3
4  r01234  4
5   r1234  5
Run Code Online (Sandbox Code Playgroud)

像这样的东西

print df.loc[df['a'].str.startswith(r'[r]\d{5}'), :]
Run Code Online (Sandbox Code Playgroud)

当然不行.如何正确地做到这一点?

python regex pandas

4
推荐指数
2
解决办法
524
查看次数

我编写了一个代码来计算两个Pandas系列之间的相关性.你能告诉我我的代码有什么问题吗?

以下是代码:

import numpy as np
import pandas as pd

def correlation(x, y):
    std_x = (x - x.mean())/x.std(ddof = 0)
    std_y = (y - y.mean())/y.std(ddof = 0)
    return (std_x * std_y).mean

a = pd.Series([2, 4, 5, 7, 9])
b = pd.Series([12, 10, 9, 7, 3])
ca = correlation(a, b)
print(ca)
Run Code Online (Sandbox Code Playgroud)

它不返回相关的值,而是返回一个带有键的系列0 ,1, 2, 3, 4, 5和值-1.747504, -0.340844, -0.043282, -0.259691, -2.531987.

请帮我理解这背后的问题.

python python-3.x pandas

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

根据值的位置从多个列创建字典

我有一个像这样的数据框

import pandas as pd

df = pd.DataFrame(
    {
        'C1': list('aabbab'),
        'C2': list('abbbaa'),
        'value': range(11, 17)
    }
)

  C1 C2  value
0  a  a     11
1  a  b     12
2  b  b     13
3  b  b     14
4  a  a     15
5  b  a     16
Run Code Online (Sandbox Code Playgroud)

我想生成这样的字典:

{'C1': {'a': {1: 11, 2: 12, 3: 15}, 'b': {1: 13, 2: 14, 3: 16}},
'C2': {'a': {1: 11, 2: 15, 3: 16}, 'b': {1: 12, 2: 13, 3: 14}}}
Run Code Online (Sandbox Code Playgroud)

逻辑如下:

df我转到该列 …

python performance dictionary pandas

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