1 numpy 创建数组
np.array([1, 2, 3])通过列表创建一维数组
np.array([(1, 2, 3), (4, 5, 6)])通过列表创建二维数组
np.zeros((3, 4))创建全为0的二维数组
np.ones((2, 3, 4))创建全为1的三维数组
np.full((3, 4), 2) full函数,创建任意大小的数组并填充任意数字此时为2
np.arange(5)创建一维等差数组
np.arange(6).reshape(2, 3) 创建二维等差数组
np.eye(3) 创建单位矩阵(二维数组)
np.random.rand(2, 3) 创建二维随机数组
np.random.randint(5, size = (2, 3)) 创建二维随机整数数组(数值小于 5)
2 数组运算
a.argsort() # 将元素按照行从小到大排序,返回对应位置元素的下标
a = np.array([[3, 6, 4, 11], [5, 10, 1, 3]])
a.argsort()
输出:[[0 2 1 3]
[2 3 0 1]]
广播原则:a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) b = np.array([1, 2, 3])
# a+b相当于在a的每一行都加上b
([[ 2, 4, 6],
[ 5, 7, 9],
[ 8, 10, 12]])
3 索引的使用
a[1, 2]取出某个确定的值第一行第二列的值
a[-2:, 1:3]表示[取倒数第二行到最后一行, 第二列到第三列
t=np.arange(24).reshape(4,6)
t[t<10]=0 #把t中小于10的数字替换为0
np.where(t<10,0,10) #numpy中的三元运算符把t中小于10的数字替换为0,其余为10
t.clip(10,18) #小于10的替换为10,大于18的替换为18
4 numpy的转置
t.transpose()
t.swapaxex(1,0)
t.T
5 numpy中的nan的注意点
np.nan!=np.nan
6 数组的拼接
np.vstack((t1,t2)) #竖直拼接
np.hstack((t1,t2)) # 水平拼接
t [[1,2],:]=t [[2,1],:] #行交换
t [:,[1,2]]=t [:,[2,1]] #列交换
7 t中存在nan值,如何操作把其中的nan填充为每一列的均值
t 1= [[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. nan nan nan nan]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 22. 23.]]
输出: [[ 0. 1. 2. 3. 4. 5.]
[ 6. 7. 12. 13. 14. 15.]
[12. 13. 14. 15. 16. 17.]
[18. 19. 20. 21. 22. 23.]]
8 numpy读取数据np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)
9 matplotlib绘制出youtube视频评论数量小于等于五千的直方图
10 英国的youtube中视频的评论数和喜欢数的关系