我有一个数据框,其行由化学元素类型索引,列表示不同的样本.值是浮点数,表示每个样本中行元素的存在程度.
我想计算每一行的平均值,并从该特定行中的每个值中减去它以规范化数据,并创建该数据集的新数据帧.
我尝试使用mean(1),它给了我一个具有每个化学元素均值的Series对象,这很好,但后来我尝试使用减法,这是行不通的.
我使用所有列表函数在Python中创建了一个Stack类作为练习.例如,Stack.push()只是list.append(),Stack.pop()是list.pop(),Stack.isEmpty()只是list == [].
我正在使用我的Stack类来实现十进制到二进制转换器,我注意到的是,即使这两个函数完全等同于我的Stack类的包装,用于push(),pop()和isEmpty(),实现使用Stack类的速度是使用Python列表的两倍.
那是因为在Python中使用类总是存在固有的开销吗?如果是这样,技术上的开销来自哪里("引擎盖下")?最后,如果开销是如此重要,除非你绝对必须使用类不是更好吗?
def dectobin1(num):
s = Stack()
while num > 0:
s.push(num % 2)
num = num // 2
binnum = ''
while not s.isEmpty():
binnum = binnum + str(s.pop())
return binnum
def dectobin2(num):
l = []
while num > 0:
l.append(num % 2)
num = num // 2
binnum = ''
while not l == []:
binnum = binnum + str(l.pop())
return binnum
t1 = Timer('dectobin1(255)', 'from __main__ import dectobin1')
print(t1.timeit(number = 1000))
0.0211110115051
t2 = …Run Code Online (Sandbox Code Playgroud) 我有一个带有“日期”列的数据框,其中包含约 200 个元素,格式为 yyyy-mm-dd。
我想为每个元素计算自 2001 年 11 月 25 日以来经过的天数,并将这些经过天数的列添加到数据框中。
我知道 to_datetime() 函数,但不知道如何实现。
我正在读这个问题:无法返回int数组,因为我遇到了同样的问题.
似乎在函数内本地声明的数据结构(因为C显然可以返回本地声明的变量)不能返回,在本例中是一个数组.
然而,Python不会遇到同样的问题; 据我所知,可以在函数中声明一个数组并返回该数组而不必将其作为参数传递.
引擎盖下有什么区别?Python是否隐式使用指针(在函数中使用malloc)?
我想我正要检查我的计算机上安装的Python版本
python -v
Run Code Online (Sandbox Code Playgroud)
在我的终端,我得到了第一行说
"安装zipimport hook",但随后还有一大堆文本(可能是50行左右的文本),其中包括"import errno#builtin","import posix#builtin","import _codecs#builtin",以及结束"Python 2.7.8 | Anaconda 2.1.0(x86_64)|(默认,2014年8月21日,15:21:46)"
我做了什么?那个命令安装了什么?
编辑:v我输入的python -v是小写字母v.当我现在尝试大写时V,我确实在我的计算机上获得了Python的版本.
我正在初始化一个numpy数组,然后在某个任意位置插入循环值; 由于某种原因,似乎使用双括号进行索引的速度实际上是使用逗号表示法编制索引的两倍.
编辑:根据Mike的回答,我想了解多维索引如何作为单个操作实现,以及是否有使用第一个表示法的要点.
import numpy as np
x = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]])
def access(arr):
for i in range(1000):
arr[1][2] = i
def access2(arr):
for i in range(1000):
arr[1,2] = i
t1 = Timer('access(x)', 'from __main__ import access, x')
print(t1.timeit(number = 1000))
0.425940990448
t2 = Timer('access2(x)', 'from __main__ import access2, x')
print(t2.timeit(number = 1000))
0.217132806778
Run Code Online (Sandbox Code Playgroud) 从对此答案的评论:/sf/answers/32179311/
我尝试创建一个宏函数,该函数将函数作为参数并使用 对其进行计时clock()。但是,我不断收到一条错误消息,指出该消息start未声明,而且我无法弄清楚,因为我确实在宏的前面声明了它
(这一切都在我的代码中的同一行上,以防产生影响;为了便于阅读,我将其分成两行):
#define timing(a): clock_t start = clock(); a; clock_t stop = clock();
printf("Elapsed: %f seconds\n", (double)(stop - start) / CLOCKS_PER_SEC);
Run Code Online (Sandbox Code Playgroud) 我有一个 React 组件,它从 Flask 后端提供的 url 获取数据,并使用该数据显示折线图。我想刷新前端的图表,而无需用户手动刷新页面。
代码是:
function Graph() {
const [graphData, setGraphData] = useState([]);
useEffect(() => {
fetchGraphData();
}, []);
const fetchGraphData = async () => {
const result = await fetch("url")
const fetchedGraphData = await result.json();
if(res.ok) {
setGraphData(fetchedGraphData);
}
};
return (
<div>
<Container>
<LineChart>
....
</LineChart>
</Container>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我尝试在任何地方以及我能想到的任何方式使用setIntervaland setTimeout,但我根本无法让它工作。
我认为这setTimeout应该更好,因为它可以保证在再次执行之前等待服务器响应,而不是setInterval在出现延迟时对查询进行排队。