我有两个数据帧,如下所示:
import pandas as pd
dates = pd.Index(['2016-10-03', '2016-10-04', '2016-10-05'], name='Date')
close = pd.DataFrame( {'AAPL': [112.52, 113., 113.05],
'CSCO': [ 31.5, 31.35, 31.59 ],
'MSFT': [ 57.42, 57.24, 57.64 ] }, index = dates )
volume= pd.DataFrame( {'AAPL': [21701800, 29736800, 21453100] ,
'CSCO': [14070500, 18460400, 11808600] ,
'MSFT': [19189500, 20085900, 16726400] }, index = dates )
Run Code Online (Sandbox Code Playgroud)
DataFrame 'close' 的输出如下所示:
AAPL CSCO MSFT
Date
2016-10-03 112.52 31.50 57.42
2016-10-04 113.00 31.35 57.24
2016-10-05 113.05 31.59 57.64
Run Code Online (Sandbox Code Playgroud)
DataFrame 'volume' 的输出如下所示:
AAPL CSCO …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 CNN 制作大量(约 170 万张)图像(带体积的烛台图)。但是,我目前拥有的脚本在每次迭代后不断增加其内存使用量,据我所知,每次迭代大约 2-5mb。无论我正在运行多少个脚本实例,这都会增加直到我的内存完全填满。(其中脚本最终使用 11-12 GB 的 16GB)。
目标是同时运行脚本的多个实例。我尝试了并行处理,结果不是很好。因此,我只是使用多个内核。我尝试了很多方法来减少内存使用,但似乎没有任何效果。
我在 VS 代码中使用 Jupyter 笔记本(Python 3.8.5)(anaconda),具有 64 位 Windows 系统。16GB 内存和英特尔 i7 第 8 代。
第一个单元调用包,加载数据并设置参数。
# import required packages
import matplotlib.dates as mpdates
import matplotlib.pyplot as plt
import mplfinance as mpf
import matplotlib as mpl
from PIL import Image
import pandas as pd
import math as math
import numpy as np
import io as io
import gc as gc
import os as os
#set run instance number
run=1 …Run Code Online (Sandbox Code Playgroud) 发布在R中分配矩阵的最佳方法,NULL与NA?表明在R中编写自己的矩阵分配函数比使用R的内置matrix()函数预分配大矩阵快8到10倍.
有谁知道为什么手工制作的功能如此之快?R在矩阵()内部做什么这么慢?谢谢.
这是我系统上的代码:
create.matrix <- function( nrow, ncol ) {
x<-matrix()
length(x) <- nrow*ncol
dim(x) <- c(nrow,ncol)
x
}
system.time( x <- matrix(nrow=10000, ncol=9999) )
user system elapsed
1.989 0.136 2.127
system.time( y <- create.matrix( 10000, 9999 ) )
user system elapsed
0.192 0.141 0.332
identical(x,y)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
我向那些评论认为用户定义函数较慢的人道歉,因为上述链接中的答案中发布的内容不一致.我在查看用户时间,在上面的链接中快了大约8倍,而在我的系统上,用户定义的vs内置速度快了大约10倍.
回应约书亚的会议信息请求:
> sessionInfo()
R version 2.12.1 (2010-12-16)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C …Run Code Online (Sandbox Code Playgroud) 在不同的地方,寻找有关如何从 GitHub Pull Request 创建本地分支的说明,我看到了两个版本:
git fetch upstream refs/pull/PR_ID/head:NEW_LOCAL_BRANCH
Run Code Online (Sandbox Code Playgroud)
和
git fetch upstream pull/PR_ID/head:NEW_LOCAL_BRANCH
Run Code Online (Sandbox Code Playgroud)
我的问题是,地址中包含“”和不包含“”有什么区别?refs
两者似乎都工作正常。
有没有办法强制在子类中实现方法,其中每个派生类的实现都有不同的签名?
我知道我可以使用纯虚拟来做到这一点:
class Base {
public:
virtual void getValue(string& s) = 0;
}
class Derived : public Base {
public:
void getValue(string& s);
}
Run Code Online (Sandbox Code Playgroud)
上面,基类中的纯虚拟 getValue 强制派生类实现 getValue。但我真正想做的是这样的:强制每个派生类实现 getValue() 但每个派生类都有不同的签名:
class Base {
public:
void getValue() = 0;
}
class Derived_A : public Base {
public:
void getValue(string& s);
}
class Derived_B : public Base {
public:
void getValue(int *j);
}
Run Code Online (Sandbox Code Playgroud)
上述问题在于,由于名称修改,每个签名实际上都是不同的函数,因此 Derived_A 和 Derived_B 继承 getValue() = 0 并且编译器认为它们也是抽象的。
我一直在尝试一些不同的方法来做到这一点,但在我看来没有办法做到这一点。我想我不应该在基类中声明 getValue ,然后确保每个派生类都实现其版本。
我理解,一般来说,git rebase -i并且git reset用于非常不同的事情。
但是在删除最近的 N 次提交的情况下,在我看来它们是(或可以是)相同的。我什至做了一个实验(我的存储库有两个不同的本地副本),据我所知,它们是相同的。我只是发布这个问题,以防有人可以指出我可能遗漏了什么。所以这就是我所做的。
我需要删除最近的 11 次提交(不管为什么)。
我尝试了两种方法,它们看起来完全相同;只是想知道我是否遗漏了什么,因为它们并不完全相同:
git rebase -i HEAD~12git reset --hard HEAD~12这两种方法似乎做了完全相同的事情。那是对的吗?
非常感谢。只是想比我现在更深入地了解 git。
git ×2
anaconda ×1
c++ ×1
git-rebase ×1
git-refspec ×1
git-reset ×1
github ×1
matplotlib ×1
matrix ×1
mplfinance ×1
multi-index ×1
pandas ×1
python ×1
python-3.x ×1
r ×1