相关疑难解决方法(0)

以编程方式获得代码的Big-O效率

我想知道是否有任何自动方法来确定(至少大致)给定函数的Big-O时间复杂度?

如果我绘制O(n)函数与O(n lg n)函数,我想我能够在视觉上确定哪个是哪个; 我认为必须有一些启发式解决方案,可以自动完成.

有任何想法吗?

编辑:我很高兴找到一个半自动化的解决方案,只是想知道是否有某种方法可以避免进行全手动分析.

algorithm complexity-theory

30
推荐指数
5
解决办法
8780
查看次数

我应该考虑memmove()O(n)还是O(1)?

这可能是一个愚蠢的问题,但我想计算一个算法的复杂性,我不确定memmove()函数要考虑的复杂性.

你能帮忙/解释一下吗?

void * memmove ( void * destination, const void * source, size_t num );
Run Code Online (Sandbox Code Playgroud)

复杂度O(num)或O(1)也是如此.我想这是O(num),但我不确定我现在缺乏对引擎盖下发生的事情的理解.

c complexity-theory standard-library

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

更改/重新排列 pandas 数据框的列顺序是否会创建内部副本?

在更改 pandas 数据帧的列顺序时,给出了几种技术。

  1. 通过重新分配此处df = df[['d', 'c', 'b', 'a']]给出的重新排列的列

或者

  1. 通过此处DataFrame.reindex(columns=neworderlist)给出的调用

问题是这些列出的技术是否在内部创建数据帧的副本?是否有任何一种技术优于另一种技术?pandas索引文档中给出了模糊的参考,这不鼓励链式分配。这种“SettingWithCopy”行为也出现在这里吗?

python dataframe pandas

6
推荐指数
0
解决办法
319
查看次数

布尔索引的Pandas,loc和non loc

所有的研究,我做点使用loc的方式,通过一个山坳(S)值(S)来过滤数据帧,今天我读这个,我发现了我所测试的例子,那loc是不是是不是真的需要的时候按其值过滤cols:

例如:

df = pd.DataFrame(np.arange(0, 20, 0.5).reshape(8, 5), columns=['a', 'b', 'c', 'd', 'e'])    

df.loc[df['a'] >= 15]

      a     b     c     d     e
6  15.0  15.5  16.0  16.5  17.0
7  17.5  18.0  18.5  19.0  19.5

df[df['a'] >= 15]

      a     b     c     d     e
6  15.0  15.5  16.0  16.5  17.0
7  17.5  18.0  18.5  19.0  19.5
Run Code Online (Sandbox Code Playgroud)

注意:我确实知道是通过索引和位置来执行lociloc返回行。我没有基于此功能进行比较。

但是,在过滤时,执行“ where”子句使用或不使用之间有什么区别loc?如果有的话。为什么我遇到的有关该主题的所有示例都使用loc

python where dataframe python-3.x pandas

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

如何在pandas数据框中移动列

我想把一个索引为'length'的列,并将其作为我的第二列.它目前作为第5列存在.我试过了:

colnames = big_df.columns.tolist()

# make index "length" the second column in the big_df
colnames = colnames[0] + colnames[4] + colnames[:-1] 

big_df = big_df[colnames]
Run Code Online (Sandbox Code Playgroud)

我看到以下错误:

TypeError:必须是str,而不是list

我不确定如何解释这个错误,因为它实际上应该是一个list,对吧?

另外,是否有通用方法将任何列按标签移动到指定位置?我的列只有一个级别,即没有MultiIndex涉及.

python indexing numpy dataframe pandas

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