Ben Chuanlong Du's Blog

It is never too late to learn.

No BLAS or LAPACK Found When Installing Scipy

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

To build Scipy from sources, BLAS & LAPACK libraries need to be installed. See site.cfg.example in the Scipy source directory and

sudo apt-get install gfortran libopenblas-dev liblapack-dev

The dependency requires …

Cast Types of Columns in Pandas

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

Tips and Traps

  1. You can use the method Series.astype to cast the type of a series.

  2. Series.astype(str) converts NaNs to the string literal nan. This is often NOT what people want. A better way is to use Series.astype(object)

Profiling Data Using ydata-profiling

Tips and Traps

  1. It is suggested that you use multiprocessing (e.g., pool_size=8) to speed up data profiling. Note: It seems to me that currently multiprocessing only works when minimal=True.

  2. minimal=True helps reuce consumed memory.

     profile = ProfileReport(
         df, title="Data Profiling Report", 
         explorative=True, minimal=True, pool_size=8
     )

Calling Rust from Python

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

Tools

pyo3

Rust bindings for Python, including tools for creating native Python extension modules. Running and interacting with Python code from a Rust binary is also supported.

maturin

Build and publish …

Security Tools in Python

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

bandit

bandit is a tool designed to find common security issues in Python code.

pyarmor

pyarmor is a tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or …