基本上,我有两个张量: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)
所以,如果有办法直接得到这个,我更喜欢它(希望节省空间).
我有一个包含大约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)
这给了我相同的输出.我正确使用它吗?
我相对较新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)
所以现在我们拥有包含搜索模式的所有数字.这就是我被困的地方.我知道在这一点上我需要将结果"分组"成两个序列.一个以搜索模式开始,另一个不是.然后按字母顺序在每个组中应用辅助排序.如何编写一个结合了所有这些的查询?
这个问题是由我刚才给出的答案推动的.
假设我有一个这样的数据帧
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) 我正在运行phpmyadmin并在我的个人计算机上安装了apache服务器.我的问题是我试图将MySQL设置event_scheduler为始终启用,即使服务器重新启动.我正在通过在服务器配置文件(my.cnf或my.ini)中设置以下命令行来阅读它,它应该工作:event_scheduler=DISABLED.但是,我在哪里找到这个my.cnf或my.ini文件,并且命令行是否应该event_scheduler=DISABLED或者event_scheduler=ENABLED看到我希望它始终被启用?
我正在尝试将分段定义的函数拟合到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) 我一直在尝试使用一些功能来使用某些数据,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) 我有这样的数据帧
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)
当然不行.如何正确地做到这一点?
以下是代码:
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.
请帮我理解这背后的问题.
我有一个像这样的数据框
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 ×8
pandas ×4
matplotlib ×2
numpy ×2
axis-labels ×1
c# ×1
data-fitting ×1
dictionary ×1
heatmap ×1
linq ×1
list ×1
matrix ×1
missing-data ×1
mysql ×1
performance ×1
phpmyadmin ×1
piecewise ×1
python-3.x ×1
regex ×1
replace ×1
scheduling ×1
seaborn ×1
sorting ×1
theano ×1