Tag: numpy

最快的方法来生长一个numpy数组数组

要求: 我需要从数据中随意增长一个数组。 我可以猜测大小(大约100-200),不保证数组每次都适合 一旦它增长到最终的大小,我需要对它进行数值计算,所以我宁愿最终得到一个二维numpy数组。 速度至关重要。 例如,对于300个文件中的一个,update()方法被称为4500万次(大约需要150s),finalize()方法被称为500k次(总共需要106s)…总共250s或者。 这是我的代码: def __init__(self): self.data = [] def update(self, row): self.data.append(row) def finalize(self): dx = np.array(self.data) 其他的东西,我尝试包括以下代码…但这是waaaaay慢。 def class A: def __init__(self): self.data = np.array([]) def update(self, row): np.append(self.data, row) def finalize(self): dx = np.reshape(self.data, size=(self.data.shape[0]/5, 5)) 这里是一个如何调用的示意图: for i in range(500000): ax = A() for j in range(200): ax.update([1,2,3,4,5]) […]

检测一个NumPy数组是否至less包含一个非数字值?

我需要编写一个函数来检测input是否包含至less一个非数字值。 如果find一个非数字值,我会引发一个错误(因为计算只能返回一个数字值)。 input数组的维数不是预先知道的 – 函数应该给出正确的值,而不pipendim。 作为一个额外的复杂的input可能是一个单一的浮动或numpy.float64甚至古怪的像一个零维数组。 解决这个问题的显而易见的方法是编写一个recursion函数,迭代数组中的每个可迭代对象直到find一个非迭代。 它将在每个非可迭代对象上应用numpy.isnan()函数。 如果至less有一个非数字值被find,那么函数将立即返回False。 否则,如果迭代中的所有值都是数值,则最终将返回True。 这工作得很好,但速度很慢,我期望NumPy有更好的方法来做到这一点。 什么是更快,更numpyish替代? 这是我的模型: def contains_nan( myarray ): """ @param myarray : An n-dimensional array or a single float @type myarray : numpy.ndarray, numpy.array, float @returns: bool Returns true if myarray is numeric or only contains numeric values. Returns false if at least one non-numeric value […]

映射一个NumPy数组

是否可以映射一个NumPy数组? 如果是的话,怎么样? 给定a_values – 二维数组 – 这是目前为我所用的技巧: for row in range(len(a_values)): for col in range(len(a_values[0])): a_values[row][col] = dim(a_values[row][col]) 但是,如果我怀疑在NumPy中的某个地方必须有一个function与以下类似的function一样: a_values.map_in_place(dim) 但如果像上面这样的东西存在,我一直无法find它。

Python的numpy中的“zip()”是什么?

我正在尝试执行以下操作,但使用numpy数组: x = [(0.1, 1.), (0.1, 2.), (0.1, 3.), (0.1, 4.), (0.1, 5.)] normal_result = zip(*x) 这应该给以下结果: normal_result = [(0.1, 0.1, 0.1, 0.1, 0.1), (1., 2., 3., 4., 5.)] 但是,如果input向量是一个numpy数组: y = np.array(x) numpy_result = zip(*y) print type(numpy_result) 它(预计)返回一个: <type 'list'> 问题是我需要在这之后将结果转换回numpy数组。 我想知道的是,如果有一个有效的numpy函数可以避免这些来回转换,那么结果是什么呢?

input和输出numpy数组到h5py

我有一个Python代码,其输出是 大小的matrix,其条目都是float型。 如果我用扩展名.dat保存,文件大小为500 MB。 我读了使用h5py大大减less文件大小。 所以,假设我有一个名为A的二维numpy数组。 如何将其保存到h5py文件? 此外,如何读取相同的文件,并将其作为一个numpy数组在不同的代码中,因为我需要做数组操作?

numpy:如果numpy数组是view,那么可靠的(非保守)指标

寻找一种方法可靠地确定一个numpy对象是否是一个视图。 相关的问题已经出现了很多次( 这里 , 这里 , 这里 ),人们提供了一些解决scheme,但似乎都有问题: 现在在pandas使用的testing是在my_array.base is not None调用某个视图。 这似乎总是能够捕捉到意见,但也提供了大量的误报(即使报告不正确,报告的情况也是如此)。 numpy.may_share_memory()将检查两个特定的数组,但不会一般地回答 (@RobertKurn说,截至2012年是最好的工具 – 任何改变?) flags['OWNDATA'])被报告(第三条评论的第一个答案)在某些情况下失败。 (我感兴趣的原因是我正在为大pandas实施抄写,而一个保守的指标正在导致过度复制。)

Numpy和Tensorflow中的np.mean和tf.reduce_mean之间的区别?

在MNIST初学者教程中 ,有accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) tf.cast基本上改变了对象的张量types,但是tf.reduce_mean和np.mean什么np.mean呢? 这里是关于tf.reduce_mean的文档: reduce_mean(input_tensor, reduction_indices=None, keep_dims=False, name=None) input_tensor: The tensor to reduce. Should have numeric type. reduction_indices: The dimensions to reduce. If `None` (the defaut), reduces all dimensions. # 'x' is [[1., 1. ]] # [2., 2.]] tf.reduce_mean(x) ==> 1.5 tf.reduce_mean(x, 0) ==> [1.5, 1.5] tf.reduce_mean(x, 1) ==> [1., 2.] 对于一维vector,它看起来像np.mean […]

NumPy中的加权标准差?

numpy.average()有一个权重选项,但是numpy.std()不是。 有没有人有解决方法的build议?

这是在pandas集团最快的方式吗?

以下代码运行良好。 只要检查一下:我是否正确使用pandas,是否有更快的方法? 谢谢。 $ python3 Python 3.4.0 (default, Apr 11 2014, 13:05:11) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import pandas as pd >>> import numpy as np >>> import timeit >>> pd.__version__ '0.14.1' def randChar(f, numGrp, N) : things = [f%x for x in range(numGrp)] return [things[x] […]

在Python中使用numpy.linalg.eig后sorting特征值和相关的特征向量

我使用numpy.linalg.eig来获取特征值和特征向量列表: A = someMatrixArray from numpy.linalg import eig as eigenValuesAndVectors solution = eigenValuesAndVectors(A) eigenValues = solution[0] eigenVectors = solution[1] 我想sorting我的特征值(例如从最低到最高),以某种方式我知道什么是sorting后的相关特征向量。 我没有find任何使用python函数的方法。 有没有简单的方法,或者我必须编码我的sorting版本?