我在 Jupyter Notebook 中有一个 Python 程序,它使用interact
模块ipywidgets
.
interact(my_func, filter_by=filter_by_list, format_type=format_dict.keys())
Run Code Online (Sandbox Code Playgroud)
我希望有人能够在某个网站上打开笔记本并使用交互式小部件而无需 Python 或其他任何东西,就像这里。
我有一个 Pandas 数据框,其中两列包含我绘制的 x,y 坐标,如下所示:
plt.figure(figsize=(10,5))
plt.scatter(df.x, df.y, s=1, marker = ".")
plt.xlim(-1.5, 1.5)
plt.ylim(0, 2)
plt.xticks(np.arange(-1.5, 1.6, 0.1))
plt.yticks(np.arange(0, 2.1, 0.1))
plt.grid(True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我想每 0.1 个单位拆分 x 和 y 轴以提供 600 个 bin (30x20)。然后我想知道每个 bin 中有多少个点以及这些点的索引,以便我可以在我的数据框中查找它们。我基本上想为每个 bin 创建 600 个新数据帧。
这是我迄今为止尝试过的:
df[(df.x >= -0.1) & (df.x < 0) & (df.y >= 0.7) & (df.y < 0.8)]
Run Code Online (Sandbox Code Playgroud)
这将给我包含在正方形 (-0.1 ? x < 0) & (0.7 ? y < 0.8) 中的数据帧的一部分。我想要一种方法来创建其中的 600 个。
我有一个列表,例如 my_list = [1, 3, 5, 7, 14, 16, 18, 22, 28, 30, 32, 41, 43]
我想要一个函数,它将返回列表中的所有值,其中该值与前一个值之间的差值不等于2,例如,函数将返回[1, 14, 22, 28, 41]
上面的列表.请注意,第一个值my_list
将始终显示为输出的第一个值.输入列表的长度不为零,最大为100.
到目前为止我有这个:
def get_output(array):
start = [array[0]]
for i in range(1, len(array)-1):
if (array[i] - array[i-1]) != 2:
start.append(array[i])
return start
Run Code Online (Sandbox Code Playgroud)
是否有更快的矢量化解决方案,请记住我将这个函数应用于数千个输入数组?
我有一个与此类似的数据框:
df = pd.DataFrame({'col1': ['a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c', 'c'],
'col2': [1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2],
'col3': [1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0],
'desired': [0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1]})
Run Code Online (Sandbox Code Playgroud)
我想应用一个滚动总和col3
,当col1
或col2
更改时重置,或者当之前的值为col3
零时。
请注意,计数偏移了 1 个单元格。这意味着新(col1, col2)
组合的期望值将始终为零。
下面的代码演示了所需的逻辑。但是,在下面的数据集上需要将近 4 分钟。
des = [] …
Run Code Online (Sandbox Code Playgroud) 我有一个由1和0组成的列表,例如
[0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0]
Run Code Online (Sandbox Code Playgroud)
我想输出另一个相同长度的列表,其中每个条目代表刚刚消失的连续0的数量,即上面示例的输出将是:
[0, 1, 2, 3, 4, 0, 0, 0, 0, 0, 1, 0]
Run Code Online (Sandbox Code Playgroud)
请注意,输出列表的第一个条目将始终是,0
并且输入列表的最后一个条目是什么并不重要.
到目前为止我尝试过的:
def zero_consecutive(input_list):
output = [0]
cons = 0
for i in input_list[:-1]:
if i == 0:
cons += 1
output.append(cons)
else:
cons = 0
output.append(cons)
return output
Run Code Online (Sandbox Code Playgroud)
它适用于该示例,但可能有更有效的方法来涵盖更多边缘情况.
python ×5
numpy ×3
pandas ×2
arrays ×1
github ×1
github-pages ×1
html ×1
ipywidgets ×1
javascript ×1
list ×1
python-2.7 ×1