# 编程坑
## numpy ndarray.dtype
不能直接使用 `ndarray.dtype = ...` 来改变dtype,会导致原地改变类型解析而不会变换存储格式,比如float32赋值成int32会导致严重问题。应该 `ndarray.astype(xxx)` 或 `np.array(ndarray, dtype=xxx)`
## scipy.sparse.dok_matrix 性能问题
不管是dok还是lil还是coo,都不是O(1)级的插入复杂度。在极致性能优化时,逐元素构建稀疏矩阵最好还是用扁平哈希数组或直接构造CSR三数组。
dok有极其严重的序列化和反序列化性能问题,因此不适合于在多线程框架如Ray中传递。
以上分析同样适用于python原生的dict和set结构。