numpy矩阵的基本使用
本文是课程笔记,课程来源:【莫烦Python】Numpy & Pandas (数据处理教程)
import numpy as np
# 此部分为numpy矩阵
# 创建数组
array = np.array([[1, 2, 3],
[4, 5, 6]])
print(array)
print('array 的维度:', array.ndim)
print('shape:', array.shape)
print('size:', array.size)
# dtype可以定义数据类型,np.int默认为int32
array = np.array([1, 2, 3], dtype=np.int)
print('dtype:', array.dtype)
array = np.array([1, 2, 3], dtype=np.int64)
print('dtype:', array.dtype)
# np.float默认为float64,更高的精度意味着需要分配更多的内存,具体定义根据情况而定义
array = np.array([1, 2, 3], dtype=np.float)
print('dtype:', array.dtype)
# 生成全0矩阵,默认类型为float64
array = np.zeros((3, 4))
print(array)
print(array.dtype)
# 生成全1矩阵
array = np.ones((3, 5), dtype=float)
print(array)
# 生成空矩阵,该矩阵初始化接近为0
# 注意这个地方我发现,若empty初始化矩阵维度和以前某次初始化维度一致,则会赋予相同的值,这是浅拷贝么?
print('empty:3x4,维度已存在初始化')
arrayE = np.empty((3, 4))
print(arrayE)
print('empty:3x5,维度未初始化过')
arrayE = np.empty((3, 6))
print(arrayE)
# arange生成0到n-1的一维数组
array = np.arange(10)
print(array)
# 生成指定范围内一维矩阵,[10,20),区间左闭右开
array = np.arange(10, 20)
print(array)
# 调整步长为2
array = np.arange(10, 20, 2)
print(array)
# reshape改变数组维度,注意最终size必须等同于原数组size,Eg:3*4=1*12
array = np.arange(12).reshape((3, 4))
print('reshape:3x4=\n', array)
# linspace用来生成线段,linspace与arange相似,但是linspace右闭合,所以size=(R_index-L_index+1)/stride+1,例如:size=(20-1+1)/5+1=5
array = np.linspace(1, 20, 5)
print(array)
print('size=(R_index-L_index+1)/stride+1=', array.size)
# 生成随机数,注意这里有两个random,意思是调用numpy的random模块下的random函数
print('random:2x4=', np.random.random((2, 4)))
# np.random.rand也是一样的,少了个括号
print('rand:2x4=', np.random.rand(2, 4))