Questions tagged «numpy»

NumPy是Python编程语言的科学和数字计算扩展。

3
python numpy机器epsilon
我试图了解什么是机器epsilon。根据维基百科,可以如下计算: def machineEpsilon(func=float): machine_epsilon = func(1) while func(1)+func(machine_epsilon) != func(1): machine_epsilon_last = machine_epsilon machine_epsilon = func(machine_epsilon) / func(2) return machine_epsilon_last 但是,它仅适用于双精度数字。我有兴趣修改它以支持单精度数字。我读到可以使用numpy,尤其是numpy.float32类。有人可以帮助您修改功能吗?
103 python  numpy  epsilon 

6
断言numpy.array相等的最佳方法?
我想为我的应用程序做一些单元测试,并且需要比较两个数组。由于array.__eq__返回一个新数组(因此TestCase.assertEqual失败),为相等性断言的最佳方法是什么? 目前我正在使用 self.assertTrue((arr1 == arr2).all()) 但我不是很喜欢

5
检测NumPy数组是否包含至少一个非数值?
我需要编写一个函数来检测输入是否包含至少一个非数字值。如果找到一个非数字值,我将引发一个错误(因为该计算应仅返回一个数字值)。预先不知道输入数组的维数-无论ndim如何,函数都应给出正确的值。更为复杂的是,输入可能是单个浮点数,numpy.float64或者甚至是零维数组之类的奇数。 解决此问题的明显方法是编写一个递归函数,该函数对数组中的每个可迭代对象进行迭代,直到找到一个非iterabe。它将numpy.isnan()对每个不可迭代的对象应用该函数。如果找到至少一个非数字值,则该函数将立即返回False。否则,如果iterable中的所有值都是数字,它将最终返回True。 效果很好,但是速度很慢,我希望NumPy有更好的方法。什么是更快更麻木的替代品? 这是我的样机: 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 exists Not-A-Number is given …
103 python  numpy 

3
带副本的numpy数组分配
例如,如果我们有一个numpyarray A,我们想要一个numpy数组B具有相同元素。 以下(见下文)方法之间的区别是什么?什么时候分配额外的内存,什么时候不分配? B = A B[:] = A(与B[:]=A[:]?相同) numpy.copy(B, A)
103 python  arrays  numpy 

4
如何正确保存和加载numpy.array()数据?
我想知道如何numpy.array正确保存和加载数据。目前,我正在使用该numpy.savetxt()方法。例如,如果我有一个array markers,它看起来像这样: 我尝试通过使用以下方式保存它: numpy.savetxt('markers.txt', markers) 在其他脚本中,我尝试打开以前保存的文件: markers = np.fromfile("markers.txt") 这就是我得到的... 首先保存的数据如下所示: 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 但是,当我使用相同的方法保存刚刚加载的数据时,即 numpy.savetxt()它看起来像这样: 1.398043286095131769e-76 1.398043286095288860e-76 1.396426376485745879e-76 1.398043286055061908e-76 1.398043286095288860e-76 1.182950697433698368e-76 1.398043275797188953e-76 1.398043286095288860e-76 1.210894289234927752e-99 1.398040649781712473e-76 我究竟做错了什么?PS没有执行其他“后台”操作。只需保存和加载,这就是我得到的。先感谢您。
103 python  arrays  numpy 

8
为什么在Alpine Linux上安装Pandas会花费很多时间
我注意到,使用基本操作系统Alpine与CentOS或Debian在Docker容器中安装Pandas和Numpy(它的依赖项)需要花费更长的时间。我在下面创建了一个小测试来演示时差。除了Alpine用来更新和下载构建依赖项以安装Pandas和Numpy的几秒钟之外,为什么setup.py花费的时间比Debian的安装时间多70倍? 是否有任何方法可以使用Alpine作为基础映像来加快安装速度,或者有另一个与Alpine大小相当的基础映像更适合用于Pandas和Numpy等软件包? Dockerfile.debian FROM python:3.6.4-slim-jessie RUN pip install pandas 使用Pandas和Numpy构建Debian图像: [PandasDockerTest] time docker build -t debian-pandas -f Dockerfile.debian . --no-cache Sending build context to Docker daemon 3.072kB Step 1/2 : FROM python:3.6.4-slim-jessie ---> 43431c5410f3 Step 2/2 : RUN pip install pandas ---> Running in 2e4c030f8051 Collecting pandas Downloading pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl (26.2MB) …
103 pandas  numpy  docker  alpine 

4
如何在numpy中获得按元素矩阵乘法(Hadamard积)?
我有两个矩阵 a = np.matrix([[1,2], [3,4]]) b = np.matrix([[5,6], [7,8]]) 我想得到元素乘积[[1*5,2*6], [3*7,4*8]],等于 [[5,12], [21,32]] 我努力了 print(np.dot(a,b)) 和 print(a*b) 但两者都给出结果 [[19 22], [43 50]] 这是矩阵乘积,而不是元素乘积。如何使用内置函数获取按元素分类的产品(又名Hadamard产品)?

2
高效地检查Python / numpy / pandas中的任意对象是否为NaN?
我的numpy数组用于np.nan指定缺失值。当我遍历数据集时,我需要检测这些缺失值并以特殊方式处理它们。 我天真地使用过numpy.isnan(val),除非val不在所支持的类型子集中,numpy.isnan()。例如,字符串字段中可能会丢失数据,在这种情况下,我得到: >>> np.isnan('some_string') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Not implemented for this type 除了编写昂贵的包装程序以捕获异常并返回之外 False,还有没有办法优雅而有效地处理此问题?
101 python  numpy  pandas 

2
'DataFrame'对象没有属性'sort'
我在这里遇到一些问题,在我的python包中,我已经安装了numpy,但是我仍然遇到此错误'DataFrame'对象没有属性'sort' 任何人都可以给我一些想法。 这是我的代码: final.loc[-1] =['', 'P','Actual'] final.index = final.index + 1 # shifting index final = final.sort() final.columns=[final.columns,final.iloc[0]] final = final.iloc[1:].reset_index(drop=True) final.columns.names = (None, None)

11
使用Python / NumPy对数组中的项目进行排名,而无需对数组进行两次排序
我有一个数字数组,我想创建另一个数组,该数组代表第一个数组中每个项目的等级。我正在使用Python和NumPy。 例如: array = [4,2,7,1] ranks = [2,1,3,0] 这是我想出的最好方法: array = numpy.array([4,2,7,1]) temp = array.argsort() ranks = numpy.arange(len(array))[temp.argsort()] 有没有更好/更快的方法可以避免对数组进行两次排序?
100 python  sorting  numpy 

10
是否有一个内置的numpy来拒绝列表中的离群值
是否有内置的numpy来执行以下操作?也就是说,获取一个列表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 …
100 python  numpy 

2
输入和输出numpy数组到h5py
我有一个Python代码,其输出为大小矩阵,其条目均为type float。如果使用扩展名保存,.dat则文件大小约为500 MB。我读到使用h5py会大大减少文件大小。因此,假设我有一个名为的2D numpy数组A。如何将其保存到h5py文件?另外,由于需要对数组进行操作,如何读取相同文件并将其作为numpy数组放入不同的代码中?
100 python  arrays  numpy  h5py 

8
如何用零除返回0
我正在尝试在python中执行元素明智的除法,但是如果遇到零,我需要将商设为零。 例如: array1 = np.array([0, 1, 2]) array2 = np.array([0, 1, 1]) array1 / array2 # should be np.array([0, 1, 2]) 我总是可以在数据中使用for循环,但是要真正利用numpy的优化,我需要除法函数在除以零错误后返回0,而不是忽略错误。 除非我缺少任何东西,否则numpy.seterr()似乎不会在出现错误时返回值。在设置自己的除以零的错误处理方法时,还有人对我如何从numpy中获得最大收益有其他建议吗?

6
如何在python中识别numpy类型?
如何可靠地确定一个对象是否具有numpy类型? 我意识到这个问题与鸭子类型的哲学背道而驰,但是我们的想法是确保一个函数(使用scipy和numpy)永远不会返回一个numpy类型,除非使用numpy类型进行调用。 这是另一个问题的解决方案,但是我认为确定对象是否具有numpy类型的一般问题与原始问题相距甚远,因此应将它们分开。

2
连续数组和非连续数组有什么区别?
在有关reshape()函数的numpy手册中,它说 >>> a = np.zeros((10, 2)) # A transpose make the array non-contiguous >>> b = a.T # Taking a view makes it possible to modify the shape without modifying the # initial object. >>> c = b.view() >>> c.shape = (20) AttributeError: incompatible shape for a non-contiguous array 我的问题是: …
100 python  arrays  numpy  memory 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.