标签: numpy

numpy.random.seed(0)做了什么?

np.random.seed在Scikit-Learn教程的下面代码中做了什么?我对NumPy的随机状态生成器的东西不太熟悉,所以我真的很感谢外行人的术语解释.

np.random.seed(0)
indices = np.random.permutation(len(iris_X))
Run Code Online (Sandbox Code Playgroud)

python numpy

215
推荐指数
6
解决办法
22万
查看次数

更好的方法是同时改变两个numpy阵列

我有两个不同形状的numpy数组,但长度相同(领先维度).我想改变它们中的每一个,使得相应的元素继续对应 - 即相对于它们的前导索引一致地混洗它们.

此代码有效,并说明了我的目标:

def shuffle_in_unison(a, b):
    assert len(a) == len(b)
    shuffled_a = numpy.empty(a.shape, dtype=a.dtype)
    shuffled_b = numpy.empty(b.shape, dtype=b.dtype)
    permutation = numpy.random.permutation(len(a))
    for old_index, new_index in enumerate(permutation):
        shuffled_a[new_index] = a[old_index]
        shuffled_b[new_index] = b[old_index]
    return shuffled_a, shuffled_b
Run Code Online (Sandbox Code Playgroud)

例如:

>>> a = numpy.asarray([[1, 1], [2, 2], [3, 3]])
>>> b = numpy.asarray([1, 2, 3])
>>> shuffle_in_unison(a, b)
(array([[2, 2],
       [1, 1],
       [3, 3]]), array([2, 1, 3]))
Run Code Online (Sandbox Code Playgroud)

然而,这种感觉笨重,效率低,而且速度慢,而且需要使阵列的复制 - 我宁愿他们洗牌在原地的,因为他们将是相当大的.

有没有更好的方法来解决这个问题?更快的执行速度和更低的内存使用率是我的主要目标,但优雅的代码也会很好.

我有另外一个想法是:

def shuffle_in_unison_scary(a, b):
    rng_state = numpy.random.get_state()
    numpy.random.shuffle(a)
    numpy.random.set_state(rng_state)
    numpy.random.shuffle(b)
Run Code Online (Sandbox Code Playgroud)

这工作...但它是一个有点吓人,因为我看不出有什么保证它会继续工作 - …

python random numpy shuffle numpy-ndarray

214
推荐指数
11
解决办法
10万
查看次数

如何安装没有root访问权限的python模块?

我正在上一些大学课程并获得了一个"教学账户",这是一个我可以用来做工作的学校账户.我想在那台机器上运行我的计算密集型Numpy,matplotlib,scipy代码,但我无法安装这些模块,因为我不是系统管理员.

我该怎么做安装?

python numpy pip

214
推荐指数
6
解决办法
21万
查看次数

如何将PIL图像转换为numpy数组?

好吧,我正在四处寻找将PIL图像对象来回转换为numpy数组,这样我就可以比PIL的PixelAccess对象允许更快的像素转换.我已经想出如何通过以下方式将像素信息放在一个有用的3D numpy数组中:

pic = Image.open("foo.jpg")
pix = numpy.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Run Code Online (Sandbox Code Playgroud)

但在完成所有令人敬畏的变换后,我似乎无法弄清楚如何将其加载回PIL对象.我知道这个putdata()方法,但似乎无法让它表现出来.

python numpy image python-imaging-library numpy-ndarray

212
推荐指数
5
解决办法
34万
查看次数

numpy:数组中唯一值的最有效频率计数

numpy/中scipy,是否有一种有效的方法来获取数组中唯一值的频率计数?

这些方面的东西:

x = array( [1,1,1,2,2,2,5,25,1,1] )
y = freq_count( x )
print y

>> [[1, 5], [2,3], [5,1], [25,1]]
Run Code Online (Sandbox Code Playgroud)

(对你来说,R用户在那里,我基本上都在寻找这个table()功能)

python arrays performance numpy

210
推荐指数
10
解决办法
24万
查看次数

在numpy中ndarray和array之间有什么区别?

ndarrayarrayNumpy有什么区别?我在哪里可以找到numpy源代码中的实现?

python arrays numpy multidimensional-array numpy-ndarray

208
推荐指数
4
解决办法
8万
查看次数

NumPy数组初始化(填充相同的值)

我需要创建一个长度为NumPy的数组n,其中每个元素都是v.

还有什么比:

a = empty(n)
for i in range(n):
    a[i] = v
Run Code Online (Sandbox Code Playgroud)

我知道zerosones会的工作为V = 0,1,我可以使用v * ones(n),但是当它不会工作vNone,而且也将是慢得多.

python arrays numpy

205
推荐指数
7
解决办法
27万
查看次数

比较两个numpy数组的相等性,逐个元素

比较两个numpy数组是否相等的最简单的方法是什么(其中相等定义为:对于所有索引i,A = B iff A[i] == B[i])?

简单地使用==给我一个布尔数组:

 >>> numpy.array([1,1,1]) == numpy.array([1,1,1])

array([ True,  True,  True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

我是否必须and使用此数组的元素来确定数组是否相等,还是有更简单的比较方法?

python arrays numpy elementwise-operations

203
推荐指数
6
解决办法
30万
查看次数

将numpy dtypes转换为本机python类型

如果我有一个numpy dtype,我该如何自动将其转换为最接近的python数据类型?例如,

numpy.float32 -> "python float"
numpy.float64 -> "python float"
numpy.uint32  -> "python int"
numpy.int16   -> "python int"
Run Code Online (Sandbox Code Playgroud)

我可以尝试提出所有这些情况的映射,但是numpy是否提供了一些自动方式将其dtypes转换为最接近的可能的本机python类型?这种映射不一定是详尽无遗的,但它应该转换具有close python模拟的常见dtypes.我认为这已经发生在numpy的某个地方了.

python numpy

200
推荐指数
9
解决办法
18万
查看次数

NumPy数组不是JSON可序列化的

创建NumPy数组并将其保存为Django上下文变量后,加载网页时收到以下错误:

array([   0,  239,  479,  717,  952, 1192, 1432, 1667], dtype=int64) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

python django json numpy

196
推荐指数
7
解决办法
18万
查看次数