机器学习三剑客之Numpy库基本操作

时间:2022-02-22 15:59:07

NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

安装命令为:pip install numpy

编辑器中具体代码如下:

#导入numpy 库
import numpy as np
#打印版本号
# print(np.version.version)
#声明一个numpy 一维数组
nlist = np.array([1,2,3])
print(nlist)
#ndim方法用来查看数组维度
print(nlist.ndim)
print('==================')
#声明一个二维数组
nlist_2 = np.array([[1,2,3,4],[4,5,6,7]])
print(nlist_2)
print(nlist_2.ndim)
print('==================')
#使用shape 属性打印多维数组得形状
print(nlist.shape)
print(nlist_2.shape)
print('==================')
#使用size方法来打印多维数组得元素个数
print(np.size(nlist))
print(np.size(nlist_2))
print('==================')
#打印numpy多维数组得数据类型
#打印普通list
print(type([1,2,3]))
print(type(nlist))
print('==================')
#使用dtype属性来打印多维数组内部元素得数据类型
print(type(123))
print(nlist.dtype)
print('==================22222222222')
#itemsize属性,来打印多维数组中得数据类型大小,字节
print(nlist.itemsize)
print('==================11111')
#data属性,用来打印数据缓冲区 buffer
print(nlist.data)
print('==================')
#声明三维数组
nlist_3 = np.array([[[1,2,3],[4,5,6],[7,8,9,]]])
print(nlist_3.ndim)
print('==================')
#使用reshape方法来反向生成多维数组
nlist_4 = np.array(range(32)).reshape(4,2,2,2)
print(nlist_4)
print(nlist_4.ndim)
print('==================')
#使用浮点作为元素类型
nlist_float = np.array([1.0,2.0,3.0])
print(nlist_float.dtype)
print('==================')
#使用字符串
nlist_string = np.array(['1','2','3'])
print(nlist_string.dtype)
print('==================')
#使用ones方法 自动生成元素为1 的所谓数组
nlist_ones = np.ones((4,4))
print(nlist_ones)
print((nlist_ones.dtype))
print('==================')
#使用zero来生成元素为0的数组
nlist_zeros = np.zeros((4,4))
print((nlist_zeros))
print(nlist_zeros.dtype)
print('==================')
#使用 empty 生成多维随机数组,使用第二个参数指定数据类型
nlist_empty = np.empty([2,2],dtype=np.int)
print((nlist_empty))
print(nlist_empty.dtype)
print((nlist_empty.ndim))
print('==================')
#把普通list转换为数组
x = [1,2,3]
x = [(1,2,3),(4,5)]
print(type(x))
nlist = np.asarray(x)
print(type(nlist))
print(nlist.ndim)
print(nlist.shape)
print('==================')
# frombuffer 通过字符串(buffer内存地址)切片来生成多维数组
my_str = b'hello world'
nlist_str = np.frombuffer(my_str,dtype='S1')
print(nlist_str)
print('==================')
x = np.array([[1,2],[3,4]])
print(x)
#指定axis属性可以指定当前多维数组的维度 sum是跨维度列级求和
sum0 = np.sum(x,axis=0,keepdims=True) # axis=0 是跨维度列级相加
print(sum0)
sum1 = np.sum(x,axis=1,keepdims=True) # axis = 跨维度行级相加
print(sum1)
print('==================')
#多维数组赋值 根据列表下标原理
y = np.array([1,2])
z = y.copy()
y[0] = 3
y[1] = 3
print(z)
print('==================')
#维度级的运算
a = np.array([[1,2],[3,4],[5,6]])
b = np.array([[11,21],[13,41],[15,61]])
#vasack方法 (添加)
suma = np.vstack((a,b))
print(suma)
#hstack方法(混和)
sumb = np.hstack((a,b))
print(sumb)
print('==================222222222222222')
#多维数组调用
nlist = np.array([[1,2],[3,4],[5,6]])
#取元素4
print(nlist[1][1])
#第二种写法
print(nlist[1,1])
#修改
nlist[2,1] = 7
print(nlist)
#删除方法 delete
# 删除nlist 第二行
print('==================')
print(np.delete(nlist,1,axis=0))
print(np.delete(nlist,0,axis=1))