小编use*_*780的帖子

如何使用索引和值迭代1d NumPy数组

对于python dict,我可以使用iteritems()同时循环键和值.但我找不到NumPy阵列的这种功能.我必须idx像这样手动跟踪:

idx = 0 
for j in theta:
   some_function(idx,j,theta)
   idx += 1
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

python arrays indexing iterator numpy

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

PyCharm:逐行调试?

我在我的Python IDE中使用PyCharm(社区版).我希望程序以逐行方式进行调试.所以我不想把每一行都设置为断点......有没有办法可以做到这一点?

python pycharm

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

仅计算最后一个指数加权移动平均 pandas

我知道,对于熊猫来说,通过这样做

test_df.ewm(halflife=half_life_for_mean).mean()
Run Code Online (Sandbox Code Playgroud)

我可以随时得到指数移动平均线......

然而我实际上只对最后一个感兴趣,我怀疑通过计算所有它可能有点低效。换句话说,我所需要的只是

test_df.ewm(halflife=half_life_for_mean).mean().iloc[-1]
Run Code Online (Sandbox Code Playgroud)

然而...我想知道这是否效率太低,它本质上需要从开始到构造进行计算ewm().mean()

是否有其他方法可以让我仅获取最后一个元素,而无需花费时间来计算整个时间依赖ewm.mean()

python pandas

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

在多处理python中共享pandas数据帧的字典

我有一个python pandas数据帧的字典.这本词典的总大小约为2GB.但是,当我在16个多处理中共享它时(在子进程中我只读取dict的数据而不修改它),它需要32GB ram.所以我想问一下,如果我可以在不进行复制的情况下跨多处理共享这个字典.我试图将它转换为manager.dict().但似乎需要太长时间.实现这一目标的最标准方法是什么?谢谢.

python dictionary multiprocessing pandas

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

我们可以在 python 中运行 ipython 命令吗?

假设我想使用 jupiter notebook/ipython 作为开发环境,然后将所有内容复制到 python 脚本中。在 ipython 中我们有这样的命令

In [1]: cd ..
/Users/myname/Desktop/software

In [2]: ls
  blah_blah_blah/ 
Run Code Online (Sandbox Code Playgroud)

假设我完成了 ipython 笔记本并想要复制所有内容(假设我有 1000 行并且我无法将它们一一编辑)来创建我的 python 脚本。是否可以让我的 python 脚本理解“cd ..”等行?

python ipython

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

为什么OS X上的mktemp被一个可以在Linux上运行的命令破坏了?

在Linux中,这个shell脚本可以工作:

# Temporary directory for me to work in
myTEMP_DIR="$(mktemp -t -d zombie.XXXXXXXXX)"

# Change to temporary directory
cd "${myTEMP_DIR}"
Run Code Online (Sandbox Code Playgroud)

但是,当我在我的Mac上执行此操作时,我收到以下错误:

dhcp-18-189-66-216:shell-scripting-sci-day2 myname$ myTEMP_DIR="$(mktemp -t -d zombie.XXXXXXXXX)"
dhcp-18-189-66-216:shell-scripting-sci-day2 myname$ cd "${myTEMP_DIR}"
-bash: cd: /var/folders/d8/b8d1j9x94l9fr3y21xrnc0640000gn/T/-d.QZDPA9Da
zombie.nwlEnHGDb: No such file or directory
Run Code Online (Sandbox Code Playgroud)

谁知道什么是错的?谢谢.

linux macos shell

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

在熊猫系列中使用元组作为索引

我有一个非常简单的任务。本质上,我想创建一个熊猫系列并使用元组值作为索引。例如,

series_tmp = pd.Series()
series_tmp[(0,'a')] = 1
Run Code Online (Sandbox Code Playgroud)

我想要做的是,我想在 pd.Series 中再创建一行,其索引为 (0,'a'),值为 1。

上面的代码得到错误:

KeyError: '[0 1] not in index'
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

我知道多索引,但它对我的情况无济于事。因为我需要像 ('a',(2,'c'),'d') 这样非常复杂的元组作为键。

结论:感谢所有精彩的答案!要添加以元组为索引的行,我们应该这样做:

series_tmp = series_tmp.append(pd.Series([1],index=[(0,'a')]))
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何将元组值设置为pandas数据帧?

我想做的应该是非常简单的.基本上,我有一些数据帧,我需要为某些列分配一些元组值.

例如:

pd_tmp = pd.DataFrame(np.random.rand(3,3))
pd_tmp["new_column"] = ("a",2)
Run Code Online (Sandbox Code Playgroud)

我只需要一个带有元组值的新列,我该怎么办?

ValueError: Length of values does not match length of index
Run Code Online (Sandbox Code Playgroud)

前面的代码得到错误.

python pandas

4
推荐指数
2
解决办法
5463
查看次数

在 jupiter notebook 中 del 后释放内存

我已经使用del list_of_df. 但是我们意识到内容仍然占用内存。所以我们尝试了%reset list_of_df,但是之前的变量名已经不存在了......除了重新启动内核以重新收集内存之外我们无能为力吗?谢谢

进一步:更一般地说,我可能已经忘记了从巨大的木星笔记本代码中删除的内容。是否可以检查删除了哪些内容但仍然占用内存并删除它?

ipython jupyter-notebook

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

Pandas 导出 to_csv() 在列名周围加上引号

出于某种原因,我需要以这种格式输出到 csv 并在每列名称周围加上引号,我想要的输出如下所示:

"date" "ret"
2018-09-24 0.00013123989025119056
Run Code Online (Sandbox Code Playgroud)

我正在尝试

import csv
import pandas as pd

Y_pred.index.name = "\"date\""
Y_pred.name = "\'ret\'"
Y_pred = Y_pred.to_frame()
path = "prediction/Q1/"
try:
    os.makedirs(path)
except:
    pass

Y_pred.to_csv(path+instrument_tmp+"_ret.txt",sep=' ')   
Run Code Online (Sandbox Code Playgroud)

并得到如下输出:

"""date""" 'ret'
2018-09-24 0.00013123989025119056
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到一种使用引号将列换行的方法。有谁知道怎么做?谢谢。

我的解决方案: 使用 quoting=csv.QUOTE_NONE 和 Y_pred.index.name = "\"date\"", Y_pred.name = "\"ret\""

Y_pred.index.name = "\"date\""
Y_pred.name = "\"ret\""
Y_pred = Y_pred.to_frame()
path = "prediction/Q1/"
try:
    os.makedirs(path)
except:
    pass

Y_pred.to_csv(path+instrument_tmp+"_ret.txt",sep=' ',quoting=csv.QUOTE_NONE)   
Run Code Online (Sandbox Code Playgroud)

然后我得到

"date" "ret"
2018-09-24 0.00013123989025119056
Run Code Online (Sandbox Code Playgroud)

csv escaping quoting export-to-csv pandas

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