numpy常见的使用错误

本页面持续更新…

空数组拼接问题

1
2
3
4
5
6
7
import numpy as np
# 报错
# ValueError: all the input array dimensions except for the concatenation axis must match exactly
np.vstack([np.array([[1, 2], [2, 3]]), np.array([])])

# 正确
np.vstack([np.array([[1, 2], [2, 3]]), np.empty((0, 2))])

上面诡异的表现与numpy版本有关,我记得在1.15.x版本,第一种写法也是对的,但是今天发现在1.16.4版本就提示错误了。GitHub的numpy仓库下有相关issure

从list创建array

  • 深复制list中数据
  • 长度不同的二级或更多级list创建非数值对象,numpy直接将list保存成其data
1
2
3
4
5
6
7
data_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9, 10], [11, 12, 13]]
data_array = np.array(data_list)
# data_array.dtype为object
data_list = [[1, 2, 3], [4, 5, 6]]
data_array = np.array(data_list)
data_array[0][0] = 0
# data_list[0][0]还是1
------ 本文结束------
赞赏此文?求鼓励,求支持!
0%