首页 > 其他分享 >C, cython和pandas dataframe交互int64, int32的选择

C, cython和pandas dataframe交互int64, int32的选择

时间:2023-04-07 20:33:39浏览次数:38  
标签:cython int32 int dataframe int64 pandas

cython调用C代码的一个错误 expected 'int' but got 'long',原因不复杂,C code的int为32bit, 而pandas df缺省为np.int64 (64bit),有个参数传递了数组,指针类型就不符了。

两个解决方案

  1. C代码里面所有相关的int改为long long类型
    或者
  2. 使用pandas dataframe前转换为np.int32, 即df.astype(np.int32)

性能比较:
64位的机器上全部都跑64位的整数速度更快一点,但耗内存多一点。

操作主要是循环比较,全部用64bit整型耗时大概是第2种方法的85%左右,其中第2种方法包括了类型转换的时间。

如果把int64转为int32这一步排除,全部在64bit上计算仍然性能占优,大约是第二种方法的87%.

测试环境:i7-12700 CPU, Ubuntu 5.15.0-69-generic 20.04.1 LTS

标签:cython,int32,int,dataframe,int64,pandas
From: https://www.cnblogs.com/cdef/p/17297263.html

相关文章

  • Python __ Pandas __ Dataframe 实验课
    基于Dataframe实现以下功能:导入directory.csvimportnumpyasnpimportpandasaspdfdata=pd.read_csv('F:\\directory.csv')dfx=pd.DataFrame(fdata)starbucks=pd.DataFrame(fdata)显示数据集的基本信息print(fdata.head())print(fdata.info())print(fdata.describe(......
  • pandas dataframe使用方法
    目录基本读写:数据可视化基本读写:使用PandasDataFrame的步骤如下:导入Pandas模块pythonimportpandasaspd创建DataFramepythondf=pd.DataFrame({ '姓名':['张三','李四','王五'], '年龄':[18,25,30], '性别':['男&#......
  • pandas.DataFrame.values
    参考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.values.html作用:返回DataFrame的numpy.ndarray。只有DataFrame中的值将被返回,轴标签......
  • pandas.DataFrame.shape-返回表示DataFrame维度的元组
    importpandasaspdd1=[[3,"negative",2],[4,"negative",6],[11,"positive",0],[12,"positive",2]]df1=pd.DataFrame(d1,columns=["xuhao","result","value"])pr......
  • pandas.DataFrame.sample和pandas.DataFrame.reset_index函数
    pandas.DataFrame.sample-从DataFrame或Series对象中随机取样DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None, ......
  • SPARK 第4期:通过案例实战掌握spark sql(dataframe)
    第4期:通过案例实战掌握sparksql(dataframe) SPARK中使用dataframe效率更高,比原生的scalapython查询sql执行速度更快 young.registertemptable("young")sqlcontext.sql("......
  • SPARK 使用Java 在IDE中实战RDD和DataFrame动态转换操作
    /***王家林老师授课​​​http://weibo.com/ilovepains​​*/ 源文件1,Spark,72,Hadoop,113,Flink,5 运行结果 ......
  • DataFrame的重要属性
    总结:1.values:查看所有元素的值2.dtypes:查看所有元素的类型3.index:查看所有行名、重命名行名4.columns:产看所有列名,重命名列名......
  • python pandas DataFrame,Series进一步理解
     更进一步学习和理解DataFrame,Series多个Series拼凑成一个dict,然后将dict转为DataFrame结构#!/usr/bin/evnpythonimportnumpyasnpimportpandasaspd......
  • python pandas DataFrame, Series 为空的情况
      #!/usr/bin/evnpythonimportnumpyasnpimportpandasaspddf_empty=pd.DataFrame({"empty_index":[]})print("df_empty:",df_empty)ifdf_empty.em......