我有一个DataFrame df1:
df1.head() =
wght num_links
id_y id_x
3 133 0.000203 2
186 0.000203 2
5 6 0.000203 2
98 0.000203 2
184 0.000203 2
Run Code Online (Sandbox Code Playgroud)
我需要计算一个名为的变量thr,
thr = N*(N-1)*2,
Run Code Online (Sandbox Code Playgroud)
哪个N是行数df1.
问题是,当我计算时thr,Python会抛出一个负值(尽管所有输入都是正数):
ipdb> df1['wght'].count()*(df1['wght'].count()-1)*2
-712569744
Run Code Online (Sandbox Code Playgroud)
可能的暗示
行数N是
ipdb> df1['wght'].count()
137736
Run Code Online (Sandbox Code Playgroud)
因此,
ipdb> 137736*137735*2
37942135920.
Run Code Online (Sandbox Code Playgroud)
考虑到可分配给a的最大值int32是2147483647,我怀疑NumPy会考虑type(thr) = <int32>,应该是什么时候<int64>.这有意义吗?
请注意,我没有编写生成的代码,df1因为
ipdb> df1['wght'].count()
137736
Run Code Online (Sandbox Code Playgroud)
但是,如果需要重现错误,请告诉我.
提前致谢.
我有一个包含一些重复索引值的DataFrame:
df1 = pd.DataFrame( np.random.randn(6,6), columns = pd.date_range('1/1/2010', periods=6), index = {"A", "B", "C", "D", "E", "F"})
df1.rename(index = {"C": "A", "B": "E"}, inplace = 1)
ipdb> df1
2010-01-01 2010-01-02 2010-01-03 2010-01-04 2010-01-05 2010-01-06
A -1.163883 0.593760 2.323342 -0.928527 0.058336 -0.209101
A -0.593566 -0.894161 -0.789849 1.452725 0.821477 -0.738937
E -0.670305 -1.788403 0.134790 -0.270894 0.672948 1.149089
F 1.707686 0.323213 0.048503 1.168898 0.002662 -1.988825
D 0.403028 -0.879873 -1.809991 -1.817214 -0.012758 0.283450
E -0.224405 -1.803301 0.582946 0.338941 0.798908 0.714560
Run Code Online (Sandbox Code Playgroud)
我想只更改重复值的名称,并获取如下所示的DataFrame:
ipdb> df1
2010-01-01 …Run Code Online (Sandbox Code Playgroud) 我正在模拟一个非常蹩脚的游戏,它基本上会计算玩家在游戏过程中收集的硬币和敌人的数量。该代码包含两个 jitclass:一个playerjitclass 和一个gamejitclass。
对于这个player类,我们有一些属性和一些方法来描述玩家在游戏中的进展。
from numba import jitclass, int64, float64, deferred_type
from numba.typed import List
import random
specs_player = OrderedDict()
specs_player['level'] = int64
specs_player['coins'] = float64
@jitclass(specs_player)
class Player:
def __init__(self):
self.level = 0
self.coins = 0
self.enemies = List()
def pass_level(self):
self.level += 1
def collect_coins(self, c):
self.coins += c
def collect_enemies(self, e):
self.enemies.append(e)
def reset_player(self):
self.level = 0
self.coins = 0
self.enemies = List()
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,该属性enemies是一个列表,随着玩家在游戏中的进展,该列表会附加值。
jitclass使用前两行将 jitclass 作为属性game调用: …