小编wwl*_*wwl的帖子

如何使用Wand在Python中创建动画gif?

Wand文档中的说明很简单,可以读取有序图像(例如GIF动画,图标文件等):

>>> from wand.image import Image
>>> with Image(filename='sequence-animation.gif') as image:
...     len(image.sequence)
Run Code Online (Sandbox Code Playgroud)

...但我不确定如何创建一个.

在Ruby中,使用RMagick很容易,因为你有ImageList.(请参阅我的要点.)

我尝试创建一个Image(作为"容器")并SingleImage使用图像路径实例化每个,但我很确定这是错误的,特别是因为构造函数文档SingleImage不寻找最终用户使用.

我也试过创造一个wand.sequence.Sequence并从这个角度出发,但也打了一个死胡同.我感到很失落.

python imagemagick animated-gif wand

7
推荐指数
1
解决办法
2009
查看次数

列表的哪一端是顶部?

不可否认,这似乎是一个愚蠢的问题,但请耐心等待.

在我给出的一个与Stack相关的问题中,我们要定义一个函数,它返回堆栈"顶部"的项目.对我来说,我不知道哪一方是"顶级",因为真的,任何一方都可以.

另外,我给出了一个与Queue有关的问题,它要求我们定义一个返回队列"正面"项的函数.同样,任何一方都可以被解释为"前线"

如果问题被重写为要求"返回列表中的最后一项"或"列表中的第一项",那么这是完全合理的,但不幸的是情况并非如此.

所以我想知道:在堆栈/队列方面是否有"前"和"上"的定义基本上只是列表,或者这些术语是否含糊不清?

python queue stack list

6
推荐指数
2
解决办法
810
查看次数

Numpy重复2d数组

比如两个阵列

arr = array([10, 24, 24, 24,  1, 21,  1, 21,  0,  0], dtype=int32)
rep = array([3, 2, 2, 0, 0, 0, 0, 0, 0, 0], dtype=int32)
Run Code Online (Sandbox Code Playgroud)

np.repeat(arr,rep)返回

array([10, 10, 10, 24, 24, 24, 24], dtype=int32)
Run Code Online (Sandbox Code Playgroud)

有没有办法为一组2D数组复制此功能?

这是给定的

arr = array([[10, 24, 24, 24,  1, 21,  1, 21,  0,  0],
            [10, 24, 24,  1, 21,  1, 21, 32,  0,  0]], dtype=int32)
rep = array([[3, 2, 2, 0, 0, 0, 0, 0, 0, 0],
            [2, 2, 2, 0, 0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy vectorization

5
推荐指数
1
解决办法
2463
查看次数

将pandas数据帧和系列乘以元素

让我们说我有一个熊猫系列:

import pandas as pd
x = pd.DataFrame({0: [1,2,3], 1: [4,5,6], 2: [7,8,9] })
y = pd.Series([-1, 1, -1])
Run Code Online (Sandbox Code Playgroud)

我希望以这样的方式乘以x和y:

z = pd.DataFrame({0: [-1,2,-3], 1: [-4,5,-6], 2: [-7,8,-9] })
Run Code Online (Sandbox Code Playgroud)

换句话说,如果系列的元素j是-1,则x的第j行的所有元素乘以-1.如果系列的元素k是1,则x的第j行的所有元素乘以1.

我该怎么做呢?

python pandas

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

在data.table中创建新列

我在R中的data.table中有几列(字面意思)命名为A1,A2,A3,... A50.不幸的是,我表中的列不是按字母顺序排列的.

我想创建一个名为sumA的新列,它将包含A1 + A2 + ... + A50.

这样做的简单(而不是乏味)方式是什么?

r data.table

2
推荐指数
1
解决办法
109
查看次数

规范化numpy数组

给定一个数组,我想将其标准化,使每行总和为1.

我目前有以下代码:

import numpy
w = numpy.array([[0, 1, 0, 1, 0, 0], 
                 [1, 0, 0, 0, 0, 1], 
                 [0, 0, 0, 0, 0, 1], 
                 [1, 0, 0, 0, 1, 0], 
                 [0, 0, 0, 1, 0, 1], 
                 [0, 1, 1, 0, 1, 0]], dtype = float)


def rownormalize(array):
    i = 0
    for row in array:
        array[i,:] = array[i,:]/sum(row)
        i += 1
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

1)代码有效,但我想知道是否有更优雅的方式.

2)如果它是int,我如何将数据类型转换为float?我试过了

if array.dtype == int:
    array.dtype = float
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

python numpy vectorization

2
推荐指数
1
解决办法
630
查看次数

Pandas:创建新列,交换其他行的值

我正在尝试创建一个像这样的pandas数据帧:

           x2        x3
0    3.536220  0.681269
1    0.681269  3.536220
2   -0.402380  2.303833
3    2.303833 -0.402380
4    2.032329  3.334412
5    3.334412  2.032329
6    0.371338  5.879732
. . .
Run Code Online (Sandbox Code Playgroud)

因此x2是一列随机数,x3在x2中交换的行0和1的值,交换的值为2和3,依此类推.我目前的代码是这样的:

import numpy as np
import pandas as pd
x2 = pd.Series(np.random.normal(loc = 2, scale = 2.5, size = 1000))
x3 = pd.Series([x2[i + 1] if i % 2 == 0 else x2[i - 1] for i in range(1000)])
df = pd.DataFrame({'x2': x2, 'x3': x3})
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更快或更优雅的方式,特别是如果我想要有很多行(例如100万?)或者反复这样做(例如蒙特卡罗模拟)?

python pandas

2
推荐指数
1
解决办法
76
查看次数

在R中改变显着性表示法

R具有某些显着性代码以确定统计显着性.例如,在下面的示例中,点.表示10%级别的显着性(请参阅下面的示例输出).

点很难看,特别是当我复制粘贴到Excel并在Times New Roman中显示时.

我想改变它:

  • * =显着性为10%
  • ** =显着为5%
  • *** =显着为1%

有没有办法可以做到这一点?

> y = c(1,2,3,4,5,6,7,8)
> x = c(1,3,2,4,5,6,8,7)
> summary(lm(y~x))

Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.0714 -0.3333  0.0000  0.2738  1.1191 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.2143     0.6286   0.341  0.74480    
x             0.9524     0.1245   7.651  0.00026 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8067 on 6 …
Run Code Online (Sandbox Code Playgroud)

r lm

2
推荐指数
1
解决办法
2283
查看次数

制作许多重复的列并自动重命名

我在Python中使用pandas.

import pandas as pd

假设我有一个数据帧

pd.DataFrame({"A": [1,2,3], "B": [3,2,1]})
Run Code Online (Sandbox Code Playgroud)

我想为每列创建三个副本,并将列命名为A1到A4和B1到B4.期望输出的示例:

pd.DataFrame({"A1": [1,2,3], "A2": [1,2,3], "A3": [1,2,3], "A4": [1,2,3], "B1": [3,2,1], "B2": [3,2,1], "B3": [3,2,1], "B4": [3,2,1]})
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

python dataframe pandas

0
推荐指数
1
解决办法
42
查看次数