小编Sup*_*cia的帖子

何时以及为什么类型对象比字典更好?

我正在改编公司提供的一些代码(用于控制仪器)。我自己不是 Python 专家,所以我想了解以某种方式做某事是否有任何特殊优势。

他们的代码基本上是

def enum(**enums):
    return type('Enum', (), enums)

Inst = enum(
    CONTINUE = 0,
    STOP = 1,
    LOOP = 2,
    END_LOOP = 3,
    JSR = 4,
    RTS = 5,
    BRANCH = 6,
    LONG_DELAY = 7,
    WAIT = 8,
    RTI = 9
)
Run Code Online (Sandbox Code Playgroud)

他们使用它来访问上述“条目”的值,例如:

Inst.RTS
% 5
Run Code Online (Sandbox Code Playgroud)

按照我的理解,Inst是一个type对象。


为了存储字符串及其相关值,我还可以定义一个dict

Inst = {'CONTINUE':0, 'STOP':1, 'LOOP':2, 'END_LOOP':3, 'JSR':4, 'RTS':5}
Run Code Online (Sandbox Code Playgroud)

然后基本上得到相同的结果:

Inst['RTS']
% 5
Run Code Online (Sandbox Code Playgroud)

type与普通对象相比,对象有什么用途/有什么优点dict?或者上面的例子只是一个坏例子?

python dictionary

3
推荐指数
2
解决办法
58
查看次数

python-将字典保存为.npy格式

我有一个,dict并且我将一个数组与每个键关联(键本身是一个数字)。

最小示例:

import numpy as np
data = {}
data[2.5] = np.array([np.array([1,2,3,4]), np.array([5,6,7,8])])
Run Code Online (Sandbox Code Playgroud)

然后我保存dict

np.save('file.npy', data)
Run Code Online (Sandbox Code Playgroud)

然后重新加载它:

datanew = np.load('file.npy')
Run Code Online (Sandbox Code Playgroud)

-

现在,为了访问存储在每个密钥中的内容,我不能仅仅这样做:

datanew[2.5]
Run Code Online (Sandbox Code Playgroud)

但是我要做

datanew[()][2.5]
Run Code Online (Sandbox Code Playgroud)
  • 为什么?
  • 有没有更好的方法来保存格言?

python numpy

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

将新文件推送到现有的 git 存储库

我有一个远程 Git 存储库,它是一个包含一堆文件的文件夹。

我刚刚在我的计算机上创建了一个新文件,没有拉取现有的 Git 存储库或任何东西。我可以推送这个新文件,使其最终出现在我在远程存储库中的文件夹中吗?

还是我必须pull先添加我的文件,然后push再添加。

(该文件不需要与文件夹中的任何其他文件一起使用)

git

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

为什么pickle比np.save花费的时间长这么多?

我想保存一个dict或数组。

我尝试了 withnp.save和 with pickle,发现前者总是花费更少的时间。

我的实际数据要大得多,但为了演示目的,我在这里只展示了一小部分:

import numpy as np
#import numpy.array as array
import time
import pickle

b = {0: [np.array([0, 0, 0, 0])], 1: [np.array([1, 0, 0, 0]), np.array([0, 1, 0, 0]), np.array([0, 0, 1, 0]), np.array([0, 0, 0, 1]), np.array([-1,  0,  0,  0]), np.array([ 0, -1,  0,  0]), np.array([ 0,  0, -1,  0]), np.array([ 0,  0,  0, -1])], 2: [np.array([2, 0, 0, 0]), np.array([1, 1, 0, 0]), np.array([1, 0, 1, 0]), np.array([1, …
Run Code Online (Sandbox Code Playgroud)

python numpy save pickle

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

颜色映射为蓝色阴影-python

我有以下(示例)代码:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl


n_lines = 5
x = np.linspace(0, 10, 100)
y = np.sin(x[:, None] + np.pi * np.linspace(0, 1, n_lines))
c = np.arange(1, n_lines + 1)

norm = mpl.colors.Normalize(vmin=c.min(), vmax=c.max())
cmap = mpl.cm.ScalarMappable(norm=norm, cmap=mpl.cm.jet)
cmap.set_array([])

fig, ax = plt.subplots(dpi=100)
for i, yi in enumerate(y.T):
    ax.plot(x, yi, c=cmap.to_rgba(i + 1))
fig.colorbar(cmap, ticks=c)
plt.show();
Run Code Online (Sandbox Code Playgroud)

我想找到一个替代物cmap.to_rgba,使每行的颜色显示为蓝色的不同阴影。
基本上,我希望与该代码的结果保持相同的布局,但要使用颜色映射Blues

我该怎么做?

python plot

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

标签 统计

python ×4

numpy ×2

dictionary ×1

git ×1

pickle ×1

plot ×1

save ×1