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 …

Bash Equivalent of the ifmain Pattern in Python

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

#!/usr/bin/env bash

function install_icon.usage() {
    cat << EOF
NAME
    /scripts/sys/install_icon.sh - Download and install icon to /usr/local/bin/.
SYNTAX 
    /scripts/sys/install_icon.sh [-h]
EOF
}

function install_icon …

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)

Tips on Conda

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

  1. conda and executables installed by conda might not be able to run by sudo directly. If this happends, use the full path of the executable or add the option -E "PATH …

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 …