假设我有一个元组列表,如下所示:
list = [(a,1), (b,3), (c,5)]
Run Code Online (Sandbox Code Playgroud)
我的目标是使用元组的第二个元素获取元组列表中值的第一个元素.在上面的例子中,我想要一个b的输出,因为中位数是3.我尝试使用NumPy与下面的代码,无济于事:
import numpy as np
list = [('a',1), ('b',3), ('c',5)]
np.median(list, key=lambda x:x[1])
Run Code Online (Sandbox Code Playgroud) 是否有任何等效的数组拆分?
a = [1, 3, 4, 6, 8, 5, 3, 4, 5, 8, 4, 3]
separator = [3, 4] (len(separator) can be any)
b = a.split(separator)
b = [[1], [6, 8, 5], [5, 8, 4, 3]]
Run Code Online (Sandbox Code Playgroud) 我只是学习如何使用sympy,我尝试了一个简单的sin函数集成.当参数sin()具有恒定的相位常数时,integrate()无论相位如何,输出都给出相同的值:0
from sympy import *
w = 0.01
phi = 0.3
k1 = integrate(sin(w*x), (x, 0.0, 10.0))
k2 = integrate(sin(w*x + 0.13), (x, 0.0, 10.0))
k3 = integrate(sin(w*x + phi),(x, 0.0, 10.0))
k1, k2, k3
(0.499583472197429, 0, 0)
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下为什么吗?
我想知道是否存在一个函数,它会同时计算移动平均值并将其与np.diff?
如果你有一个数组,你可以计算移动窗口的平均值(移动平均值)并计算该平均值和下一个1元素之间的差值.
例:
a = [1, 3, 4, 5, 15, 14, 16, 13]
b = np.diff(a)
#np.diff makes something like this: `[n] - [n-1]`
#I want something like this: `[n] - np.mean([n-m : n])`
#I would like to have a function, where I could vary `m`:
m = 2
d = [2, 1.5, 10.5, 4, 1.5, -2]
Run Code Online (Sandbox Code Playgroud)
我将如何实现它,以便时间计算不会那么长,因为我想将它用于26000个元素和更高的数组m?
有谁知道如何更新前向传播中使用的权重的子集(即只有一些索引)?
我的猜测是,我可以在应用compute_gradients后执行此操作,如下所示:
optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate)
grads_vars = optimizer.compute_gradients(loss, var_list=[weights, bias_h, bias_v])
Run Code Online (Sandbox Code Playgroud)
...然后使用元组列表执行某些操作grads_vars.
目前我正在开发一个从文本文件中提取测量数据的 python 脚本。我正在使用 iPython Notebook 和 Python 2.7
现在我在使用 numpy 数组时遇到了一些奇怪的行为。我对此没有任何解释。
myArray = numpy.zeros((4,3))
myArrayTransposed = myArray.transpose()
for i in range(0,4):
for j in range(0,3):
myArray[i][j] = i+j
print myArray
print myArrayTransposed
Run Code Online (Sandbox Code Playgroud)
造成:
[[ 0. 1. 2.]
[ 1. 2. 3.]
[ 2. 3. 4.]
[ 3. 4. 5.]]
[[ 0. 1. 2. 3.]
[ 1. 2. 3. 4.]
[ 2. 3. 4. 5.]]
Run Code Online (Sandbox Code Playgroud)
因此,无需处理转置数组,该数组中的值就会更新。
这怎么可能?
基本上,我有两个张量: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)
所以,如果有办法直接得到这个,我更喜欢它(希望节省空间).
我有一个像这样的坐标数组:
array = [[1,6],[2,6],[3,8],[4,10],[5,6],[5,7],[18,6],[19,5],[17,9],[10,5]]
Run Code Online (Sandbox Code Playgroud)
我想将数组拆分为6. 和7。协调,([5,7],[18,6])因为那里的值存在差距X。我想得到两个单独的数组,arr1和arr2,其中arr1是分割之前的值,arr2是分割之后的值。
我想说,如果下一个X值大于 的差值10,它将附加到arr2, else arr1,如下所示:
arr1 = []
arr2 = []
for [x,y] in array:
if next(x) > 10:
arr2.append(x,y)
else:
arr1.append(x,y)
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) 我有两个这样的数据框
import pandas as pd
import numpy as np
df1 = pd.DataFrame({
'key': list('AAABBCCAAC'),
'prop1': list('xyzuuyxzzz'),
'prop2': list('mnbnbbnnnn')
})
df2 = pd.DataFrame({
'key': list('ABBCAA'),
'prop1': [np.nan] * 6,
'prop2': [np.nan] * 6,
'keep_me': ['stuff'] * 6
})
key prop1 prop2
0 A x m
1 A y n
2 A z b
3 B u n
4 B u b
5 C y b
6 C x n
7 A z n
8 A z n
9 C z n …Run Code Online (Sandbox Code Playgroud)