Questions tagged «numpy»

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


6
在磁盘上保留numpy数组的最佳方法
我正在寻找一种保留大型numpy数组的快速方法。我想将它们以二进制格式保存到磁盘中,然后相对快速地将它们读回到内存中。不幸的是,cPickle不够快。 我找到了numpy.savez和numpy.load。但是奇怪的是,numpy.load将一个npy文件加载到“内存映射”中。这意味着对数组的常规操作确实很慢。例如,像这样的事情真的很慢: #!/usr/bin/python import numpy as np; import time; from tempfile import TemporaryFile n = 10000000; a = np.arange(n) b = np.arange(n) * 10 c = np.arange(n) * -0.5 file = TemporaryFile() np.savez(file,a = a, b = b, c = c); file.seek(0) t = time.time() z = np.load(file) print "loading …

4
多处理中的共享内存对象
假设我有一个很大的内存numpy数组,我有一个函数func将这个巨型数组作为输入(以及其他一些参数)。func具有不同参数的参数可以并行运行。例如: def func(arr, param): # do stuff to arr, param # build array arr pool = Pool(processes = 6) results = [pool.apply_async(func, [arr, param]) for param in all_params] output = [res.get() for res in results] 如果我使用多处理库,那么该巨型数组将多次复制到不同的进程中。 有没有办法让不同的进程共享同一数组?该数组对象是只读的,永远不会被修改。 更复杂的是,如果arr不是数组,而是任意python对象,是否可以共享它? [编辑] 我读了答案,但仍然有些困惑。由于fork()是写时复制的,因此在python多处理库中生成新进程时,我们不应调用任何额外的开销。但是下面的代码表明存在巨大的开销: from multiprocessing import Pool, Manager import numpy as np; import …


9
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] 显然,我对该功能缺乏了解。
123 python  numpy 

5
如何在matplotlib中创建密度图?
在RI中,可以通过执行以下操作来创建所需的输出: data = c(rep(1.5, 7), rep(2.5, 2), rep(3.5, 8), rep(4.5, 3), rep(5.5, 1), rep(6.5, 8)) plot(density(data, bw=0.5)) 在python(带有matplotlib)中,我得到的最接近的是一个简单的直方图: import matplotlib.pyplot as plt data = [1.5]*7 + [2.5]*2 + [3.5]*8 + [4.5]*3 + [5.5]*1 + [6.5]*8 plt.hist(data, bins=6) plt.show() 我还尝试了normed = True参数,但除了尝试使高斯拟合直方图外什么也没有。 我的最新尝试是围绕scipy.stats和gaussian_kde,以下是网上的示例,但到目前为止我一直没有成功。
122 python  r  numpy  matplotlib  scipy 

9
将单个元素添加到numpy中的数组
我有一个numpy数组,其中包含: [1, 2, 3] 我想创建一个包含以下内容的数组: [1, 2, 3, 1] 也就是说,我想将第一个元素添加到数组的末尾。 我尝试了明显的方法: np.concatenate((a, a[0])) 但是我说错了 ValueError: arrays must have same number of dimensions 我不明白这一点-数组都是一维数组。
122 python  arrays  numpy 

9
有效地对numpy数组进行降序排序?
令我惊讶的是,之前没有提出过这个具体问题,但是我真的没有在SO或文档中找到它np.sort。 假设我有一个包含整数的随机numpy数组,例如: > temp = np.random.randint(1,10, 10) > temp array([2, 4, 7, 4, 2, 2, 7, 6, 4, 4]) 如果对它进行排序,则默认情况下我将获得升序: > np.sort(temp) array([2, 2, 2, 4, 4, 4, 4, 6, 7, 7]) 但我希望解决方案按降序排序。 现在,我知道我可以永远做: reverse_order = np.sort(temp)[::-1] 但这最后的陈述有效吗?它不是按升序创建副本,然后反转此副本以反转顺序获得结果吗?如果确实如此,是否有有效的选择?看起来好像不np.sort接受参数来更改排序操作中的比较符号以使事情相反。
121 python  arrays  sorting  numpy 

7
快速检查NumPy中的NaN
我正在寻找最快的方法来检查np.nanNumPy数组中NaN()的出现X。np.isnan(X)毫无疑问,因为它会构建一个shape的布尔数组X.shape,这可能是巨大的。 我试过了np.nan in X,但这似乎不起作用,因为np.nan != np.nan。有没有一种快速且节省内存的方法来做到这一点? (对于那些问“多么巨大”的人:我不知道。这是库代码的输入验证。)
120 python  numpy  nan 


5
numpy:将每行除以一个向量元素
假设我有一个numpy数组: data = np.array([[1,1,1],[2,2,2],[3,3,3]]) 我有一个对应的“向量”: vector = np.array([1,2,3]) 我如何data沿着每一行进行减法或除法运算,所以结果是: sub_result = [[0,0,0], [0,0,0], [0,0,0]] div_result = [[1,1,1], [1,1,1], [1,1,1]] 长话短说:如何使用对应于每一行的1D标量数组在2D数组的每一行上执行操作?
119 python  arrays  numpy  scipy 

3
numpy.histogram()如何工作?
在阅读numpy时,我遇到了函数numpy.histogram()。 它是做什么用的,它是如何工作的?他们在文档中提到了bin:它们是什么? 一些谷歌搜索使我大致了解直方图的定义。我明白了。但不幸的是,我无法将这些知识与文档中给出的示例联系起来。
119 python  numpy  histogram 

6
numpy dot()和Python 3.5+矩阵乘法@之间的区别
我最近使用Python 3.5,注意到新的矩阵乘法运算符(@)有时与numpy点运算符的行为有所不同。例如,对于3d阵列: import numpy as np a = np.random.rand(8,13,13) b = np.random.rand(8,13,13) c = a @ b # Python 3.5+ d = np.dot(a, b) 的@运算符返回形状的阵列: c.shape (8, 13, 13) 当np.dot()函数返回时: d.shape (8, 13, 8, 13) 如何用numpy点重现相同的结果?还有其他重大区别吗?


8
在numpy中将一维数组转换为二维数组
我想通过指定2D数组中的列数将一维数组转换为二维数组。可能会像这样工作: > import numpy as np > A = np.array([1,2,3,4,5,6]) > B = vec2matrix(A,ncol=2) > B array([[1, 2], [3, 4], [5, 6]]) numpy是否具有类似于我的组合函数“ vec2matrix”的功能?(我知道您可以像2D数组一样索引1D数组,但这不是我拥有的代码中的选项-我需要进行此转换。)

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.