Tag: numpy

从列表中排除exception值是否有一个粗糙的内build值?

是否有一个像下面这样的内容? 也就是说,取一个列表d并返回一个列表filtered_d ,根据d某些假设的分布点,删除任何外部元素。 import numpy as np def reject_outliers(data): m = 2 u = np.mean(data) s = np.std(data) filtered = [e for e in data if (u – 2 * s < e < u + 2 * s)] return filtered >>> d = [2,4,5,1,6,5,40] >>> filtered_d = reject_outliers(d) >>> print filtered_d [2,4,5,1,6,5] 我说'类似',因为函数可能允许变化的分布(泊松,高斯等)和不同的分布内的exception阈值(如我在这里使用的m )。

从python生成电影,而不保存个别帧到文件

我想从我在matplotlib中的python脚本中生成的帧创build一个h264或divx电影。 这部电影中大约有10万帧。 在networking上的例子[例如。 1],我只看到了将每个帧保存为png,然后在这些文件上运行mencoder或ffmpeg的方法。 就我而言,保存每一帧是不切实际的。 有没有办法从matplotlib生成的阴谋,并直接pipe道到ffmpeg,不生成中间文件? 用ffmpeg的C-API编程对我来说太困难了[例如。 2]。 此外,我需要一个具有良好的压缩,如x264的编码,因为电影文件否则将是一个后续步骤太大。 所以,坚持使用mencoder / ffmpeg / x264会很好。 有没有什么可以用pipe道做的[3]? [1] http://matplotlib.sourceforge.net/examples/animation/movie_demo.html [2] 如何使用x264 C API将一系列图像编码到H264中? [3] http://www.ffmpeg.org/ffmpeg-doc.html#SEC41

转换2D numpy数组列表的列表

我使用外部模块( libsvm ),它不支持numpy数组,只有元组,列表和字典。 但我的数据是在一个2D numpy数组。 我怎样才能转换pythonic的方式,又名无循环。 >>> import numpy >>> array = numpy.ones((2,4)) >>> data_list = list(array) >>> data_list [array([ 1., 1., 1., 1.]), array([ 1., 1., 1., 1.])] >>> type(data_list[0]) <type 'numpy.ndarray'> # <= what I don't want # non pythonic way using for loop >>> newdata=list() >>> for line in data_list: … line […]

在TensorFlow中使用预先训练的单词embedded(word2vec或Glove)

我最近回顾了卷积文本分类的一个有趣的实现。 然而,我所检查的所有TensorFlow代码都使用了如下的随机(未经过预先训练的)embedded向量: with tf.device('/cpu:0'), tf.name_scope("embedding"): W = tf.Variable( tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0), name="W") self.embedded_chars = tf.nn.embedding_lookup(W, self.input_x) self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1) 有人知道如何使用Word2vec的结果或GloVe预先训练的词embedded,而不是随机的吗?

如何使用Python和Numpy来计算r-squared?

我使用Python和Numpy来计算任意度的最佳拟合多项式。 我传递一个x值,y值的列表,以及我想要拟合的多项式的次数(线性,二次等)。 这很有用,但我也想计算r(相关系数)和r-squared(决定系数)。 我将我的结果与Excel的最佳拟合趋势线能力及其计算的r平方值进行比较。 使用这个,我知道我正在为线性最佳拟合(度数等于1)正确计算r平方。 但是,我的函数不适用于度数大于1的多项式。 Excel能够做到这一点。 如何使用Numpy来计算高阶多项式的r-squared? 这是我的function: import numpy # Polynomial Regression def polyfit(x, y, degree): results = {} coeffs = numpy.polyfit(x, y, degree) # Polynomial Coefficients results['polynomial'] = coeffs.tolist() correlation = numpy.corrcoef(x, y)[0,1] # r results['correlation'] = correlation # r-squared results['determination'] = correlation**2 return results

Numpy argsort – 它在做什么?

为什么numpy给出这个结果: x = numpy.array([1.48,1.41,0.0,0.1]) print x.argsort() >[2 3 1 0] 当我期望它做到这一点时: [3 2 0 1] 显然我对这个function的理解是缺乏的。

什么是最好的方式来声明numpy.array平等?

我想为我的应用程序做一些unit testing,我需要比较两个数组。 由于array.__eq__返回一个新的数组(所以TestCase.assertEqual失败),什么是最好的方式来断言相等? 目前我正在使用 self.assertTrue((arr1 == arr2).all()) 但是我不太喜欢它:\

如何在Python中规范化二维numpy数组less?

给定一个3倍的numpy数组 a = numpy.arange(0,27,3).reshape(3,3) # array([[ 0, 3, 6], # [ 9, 12, 15], # [18, 21, 24]]) 规范我想到的二维数组的行 row_sums = a.sum(axis=1) # array([ 9, 36, 63]) new_matrix = numpy.zeros((3,3)) for i, (row, row_sum) in enumerate(zip(a, row_sums)): new_matrix[i,:] = row / row_sum 一定有更好的办法,不是吗? 也许要澄清:通过规范我的意思是,每行的总和必须是1。 但是我认为这对大多数人来说是清楚的。

如何获得沿一个轴的numpy数组中最大元素的索引

我有一个2维的NumPy数组。 我知道如何获得轴上的最大值: >>> a = array([[1,2,3],[4,3,1]]) >>> amax(a,axis=0) array([4, 3, 3]) 我怎样才能得到最大元素的指标? 所以我想作为输出array([1,1,0])

用matplotlib / numpy进行线性回归

我试图在已经生成的散点图上生成一个线性回归,但是我的数据是列表格式的,所有使用polyfit的例子都需要使用arange 。 arange不接受名单。 我已经search高低如何将列表转换为数组,并没有看起来清晰。 我错过了什么吗? 接下来,如何最好地使用我的整数列表作为polyfitinput? 这里是我所遵循的polyfit例子: from pylab import * x = arange(data) y = arange(data) m,b = polyfit(x, y, 1) plot(x, y, 'yo', x, m*x+b, '–k') show()