博客 > 人工智能&数据科学 > 语言和工具
# 编程坑 ## 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结构。