网络爬虫__numpy
下载numpy包
from numpy import * print(eye(4)) 打印4行4列的数组,每个数后面都有小数点,第n行第n列的数都为一,其余为0(1<=n<=4)import numpy as np
import numpy as np
a=np.array([1,2,3])创建一个ndarray对象 ndarray是多维数组 dimensional 维度
print(a.dtype)打印数据类型 int32表示4字节的整形
print(a.shape)打印数组的元素个数
a=np.array([1,2],[3,4])二维数组
print(a.shape)打印出(2,2)
a=np.array([1,2,3,4,5],ndmin=2) ndmin制定最小维度
a=np.array([1,2,3,4],dtype=complex) 指定数据类型为复数类型
b=np.dtype(np.int32)指定数据类型对象,也可写float32
a=np.array([1,2,3],dtype=b)创建数组,指定数据类型
dt=np.dtype([('age',np.int8)])定义一个1字节的int型 age是字段名
a=np.array([(10),(20),(30)],dtype=dt)#用dt数据类型创建数组
print(a)打印数组
st=dtype([('name','S20'),('age','i4'),('marks','f4')])S20是指定长度为20个字符,超出范围会从第一个开始取值 i4和f4都是4字节的数据类型,i4的取值范围是-2147483648~2147483647,f4的取值范围是-3.4×10^38~3.4×10^38 i4和f4超出数据范围不会报错但是会输出和原数不同的数
student=np.array([('zhang',18,60),('li',22,80)])创建数组
print(student)
a=np.arange(20)在0~19范围内创建数组
b=slice(0,9,2)包括0不包括9 步长为2 从0开始数每隔1个数就打印一个元素
print(a[b])
print(a[0:9:2])两步合成一步的切片
print(a[2:])从2到底,步长为1
a=np.array([[1,2,3],[3,4,5],[4,5,6]])
print(a[1:])打印第二行及往后的数(1表示数组的索引 ...表示无数行或无数列)
print(a[...,1)打印第二列
print(a[1,...])打印第二行
print(a[...,1:])打印第二列及往后
print(a[1:,1:])打印第二行第二列及往后
a数组和b数组相乘变成[ 10 40 90 160],相加变成[ 11 22 33 44]前提是两个数组维度和形状一样
a=np.array([1,2,3,4])
b=np.array([10,20,30,40])
c=a+b
print(c)
print('---------b数组乘以a数组的每一行数据-----------')
a=np.array([[0,0,0],
[10,10,10],
[20,20,20],
[30,30,30]])
b=np.array([1,2,3])
print(a*b)
结果:
[[ 0 0 0]
[10 20 30]
[20 40 60]
[30 60 90]]
l=np.tile(b,(4,1))重复b数组的各个维度 打印四行1,2,3,一列[1,2,3]
print(l)
print(a+l)第一行是[1 2 3] 第二行的每一个元素前面加一个1,第三行的每一个元素前面加一个2,第四行的每一个元素前面加一个3
a=np.arange(10).reshape(2,5)改变数组形状为2行5列
a=np.arange(6).reshape(2,3)
for x in np.nditer(a):迭代输出元素
print(x,end=",")遍历后的数以逗号分隔
a=np.arange(9).reshape(3,3)
for i in a:
print(i)每次输出一行元素
for i in a.flat:
print(i)迭代输出
print('#复制一份数据,复制的数据形状变成了4,2 原数据是2,4没有改变形状')
a=np.arange(8).reshape(2,4)
print(a.flatten().reshape(4,2))
print(a.ravel().reshape(3,4))也是复制数组
a=np.arange(12).reshape(3,4)
print(np.transpose(a))兑换数组维度3,4变成4,3
a=np.arange(4).reshape(1,4)
print(np.broadcast_to(a,(4,4)))数组变成4,4,下面的3行都是相同的数据
a=np.array([[1,2],[3,4]])
b=np.array((5,6],[7,8]))
print(np.concatenate((a,b)))连接数组,变成4,2 行变列不变
print(np.stack((a,b)))按照0轴的方向连接,变成3维
a=np.arange(9)
b=np.split(a,3)分割数组,把a切成三份数组
print(b)
a=np.array([[1,2,3],[4,5,6]])
b=np.append(a,[7,8,9])在数组的后面添加一行数组 变成了一维数组
print(b)
import numpy as np
e=np.empty([3,4],dtype=float,order='C')创建空数组。C是行优先按行排序 F是列优先按列排序 print(e) z=np.zeros([4,5],dtype=int,order='C')创建0数组,所有元素都是0 o=np.ones([4,2],dtype=[('x','i1'),('y','i2')],order='C')创建1数组 x表示行y表示列 'C' 用于 C 的行数组,'F' 用于 FORTRAN 的列数组 从已有数组中创建数组 x=[1,2,3] a=np.asarray(x,dtype='f2') print(a) 元组转变为数组 t=(1,2,3) b=np.asarray(t) print(b) 将元组列表转变为数组 l=[(1,2,3),(4,5)] c=np.asarray(l,dtype=object) print(c) print(c.__len__())打印c的长度,有几行 r=np.arange(10,20,2,dtype=float)切片, 10~19的范围内每+2就取一个值 print(r) a=np.logspace(1.0,3.0,num=10)#num是5个数,默认底数为10不能修改,10^1~10^3生成5个等比数列 等比为1.668100537 print(a)
print('函数执行多重连接,打印出RunoobRunoobRunoob')
print (np.char.multiply('Runoob',3))
print('np.char.center(str,width,fillchar) numpy.char.center() 函数用于将字符串居中,并使用指定字符在左侧和右侧进行填充。')
print('str: 字符串,width: 字符串长度 若原字符串有5个字符,而width为21,则在左右两侧填充16个指定的字符,fillchar: 填充字符')
print (np.char.center('Runoob',20,fillchar = '*'))
print('字符串首字母大写')
print (np.char.capitalize('runoob yyy'))
print('将字符串的每个单词的首字母变成大写,以空格为标志')
print (np.char.title('i like runoob'))
print('对数组的每个元素转换为小写。它对每个元素调用 str.lower')
print('操作数组')
print(np.char.lower(['RUNOOB', 'GOOGLE']))
print('操作字符串')
print(np.char.lower('RUNOOB'))
print('对数组的每个元素转换为大写')
print('操作数组')
print(np.char.upper(['runoob', 'google']))
print('操作字符串')
print(np.char.upper('runoob'))
print('分割字符串 分隔符默认为空格分割后变成数组')
print(np.char.split('i like runoob?'))
print('分隔符为 .')
print(np.char.split('www.runoob.com', sep = '.'))
print('以换行符作为分隔符来分割字符串,并返回数组。不能设置分隔符')
print(np.char.splitlines('i\nlike runoob?'))
print(np.char.splitlines('i\rlike runoob?'))
print('移除开头和结尾处的指定字符')
print(np.char.strip('ashok arunooba','a'))
print('移除数组元素头尾的 a 字符')
print(np.char.strip(['arunooba','admin','java'],'a'))
print('通过指定分隔符来连接数组中的元素或字符串中的字符')
print('连接字符串')
print(np.char.join(':','runoob'))
print('指定多个分隔符操作数组元素 第一个元素的分隔符是: 第二个元素的分隔符是-')
print(np.char.join([':','-'],['runoob','google']))
print('将字符串中的oo全部替换为cc oo和cc长度不一样也可以替换')
print(np.char.replace ('i like runoob','oo','cc'))
#\x代表16进制 用什么进行编码就用什么进行解码 cp500是十六进制
print('对字符串进行编码')
a = np.char.encode('runoob', 'utf-8')
print(a)
print('对字符串进行解码')
print(np.char.decode(a,'utf-8'))
print('sin cos tan函数 np.pi是π')
a = np.array([0,30,45,60,90])
print('不同角度的正弦值:')
# 通过乘 pi/180 转化为弧度
print(np.sin(a*np.pi/180))
print('数组中角度的余弦值:')
print(np.cos(a*np.pi/180))
print('数组中角度的正切值:')
print(np.tan(a*np.pi/180))
a = np.array([-1.7,1.5,-0.2,0.6,10])
print('对数组中的元素进行向上取整')
print(np.ceil(a))
print('对数组中的元素进行向下取整')
print (np.floor(a))
a = np.arange(9,dtype = np.float_).reshape(3,3)
print("a数组的每一行的每一列都+/-/×/÷b数组的每一列")
print('第一个数组:')
print(a)
print('第二个数组:')
b = np.array([1,10,100])
print(b)
print('两个数组相加:')
print(np.add(a,b))
print('两个数组相减:')
print(np.subtract(a,b))
print('两个数组相乘:')
print(np.multiply(a,b))
print('两个数组相除:')
print(np.divide(a,b))
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print('我们的数组是:')
print(a)
print('#1是行0是列')
print('调用 amin() 函数(数组每一行的最小值):')
print(np.amin(a,1))
print('再次调用 amin() 函数:')
print(np.amin(a,0))
print('调用 amax() 函数:')
print("查看整个数组的最大值")
print(np.amax(a))
print('再次调用 amax() 函数:(查看每一列的最大值可以写axis = 0也可以直接写0)')
print(np.amax(a, axis = 0))
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print('求数组中某一行或某一列或整个数组的极差(最大值-最小值)')
print('我们的数组是:')
print(a)
print('调用ptp() 函数:')
print(np.ptp(a))
print('求每一行的极差:')
print(np.ptp(a,axis = 1))
print('求每一列的极差:')
print(np.ptp(a,axis = 0))
a = np.array([[3,7],[9,1]])
print('我们的数组是:')
print(a)
print('每一行都升序排序:')
print(np.sort(a))
print('每一列都升序排序:')
print(np.sort(a,axis = 0))
# 在 sort 函数中排序字段
dt = np.dtype([('name', 'S10'),('age', int)])
a = np.array([("raju",21),("anil",25),("ravi", 17), ("amar",27)], dtype = dt)
print('我们的数组是:')
print(a)
print('按name升序排序:')
print(np.sort(a, order = 'name'))
x = np.array([3,1,2])
print('我们的数组是:')
print(x)
print('数组值从小到大排序后的索引值(排序后索引仍然不变):')
y = np.argsort(x)
print(y)
print('以排序后的顺序重构原数组:')
print(x[y])
print('使用循环重构原数组:')
for i in y:
print (x[i], end=" ")
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!