小编Cle*_*leb的帖子

使用NumPy查找元组列表第二元素的中位数

假设我有一个元组列表,如下所示:

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)

python tuples numpy

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

Python使用split与数组

是否有任何等效的数组拆分?

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)

python arrays split

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

Sympy:integrate()奇怪的输出

我只是学习如何使用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)

有人可以解释一下为什么吗?

python sympy

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

功能类似于numpy的差异

我想知道是否存在一个函数,它会同时计算移动平均值并将其与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

python math numpy scipy

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

更新TensorFlow中的权重子集

有谁知道如何更新前向传播中使用的权重的子集(即只有一些索引)?

我的猜测是,我可以在应用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 machine-learning tensorflow

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

Python:当一个数组被转置时,numpy 数组是否链接?

目前我正在开发一个从文本文件中提取测量数据的 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)

因此,无需处理转置数组,该数组中的值就会更新。

这怎么可能?

python arrays pointers numpy

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

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
查看次数

根据 Python 中的数组值拆分数组

我有一个像这样的坐标数组:

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。我想得到两个单独的数组,arr1arr2,其中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)

有人可以帮我解决这个问题吗?

python arrays split

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

为什么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
查看次数

如何使用另一个数据框的子集填充数据框的列?

我有两个这样的数据框

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)

python dataframe pandas

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