最新要闻
- 世界报道:高铁站大厅没插座 客服:为了消防安全
- 滚动:你遇到过没?货车安装超亮后射灯:夜晚跟车根本看不清
- 时讯:首发2亿像素HP2!三星Galaxy S23 Ultra万元机皇来了
- 观察:口碑爆棚!剧版《三体》市占率16.51%排行第一
- 年终会员大促:B站/芒果TV/腾讯视频/优酷/百度网盘3.6折起
- 三电机真恐怖!特斯拉Model S Plaid瞬间撕裂马力机张力带
- 焦点热讯:内置LED屏见过没?Naspec推出高端HDMI 2.1数据线
- 焦点要闻:美国一州提案禁售电动汽车 议员:就看不惯“禁售燃油车”的提议
- 环球热门:电动车新国标过渡期陆续到期 雅迪股价半月暴涨3成
- 合作谈崩了 暴雪还想让网易当半年“备胎”?
- 特斯拉Model S之后:一改装公司推出福特电马灵车和礼宾车
- 今日讯!魅族Flyme牵手中国电信天翼终端!软硬件生态全面融合
- 小心吃官司 央视发布声明:2023兔年春晚内容别乱用
- 世界焦点!华硕发布Vivobook S 16 Flip笔记本:16寸3.2K OLED翻转屏
- 快播:联想一大波ThinkBook笔记本来袭:全新一代处理器 32G内存
- 天天时讯:国服还能玩6天:《守望先锋:归来》开启春节活动
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天新动态:Numpy基本使用方法
(相关资料图)
Numpy基本使用方法
第一节
创建数组
import numpy as npimport random# 创建数组a = [1, 2, 3, 4, 5]a1 = np.array(a)print(a1) # [1 2 3 4 5]b = range(10)b1 = np.array(b)print(b1) # [0 1 2 3 4 5 6 7 8 9]
数组的类名
# 数组的类名print(type(a1)) # print(type(b1)) #
数据的类型
# 数据的类型print(a1.dtype) # int32c1 = np.array([random.random() for i in range(10)])print(c1)# [0.65076793 0.78410146 0.94405112 0.58741766 0.23018049 0.80708392 0.5297858 0.14736833 0.53402873 0.21310533]print(c1.dtype) # float64d1 = np.array([True, False, False, True])print(d1.dtype) # bool
指定数组类型
# 指定数组类型a2 = np.array(a, dtype=float)print(a2.dtype) # float64a3 = np.array(a, dtype="float")print(a2.dtype) # float64
修改数组类型
# 修改数组类型d2 = d1.astype(int)print(d2) # [1 0 0 1]print(d2.dtype) # int32a4 = a1.astype(dtype="float")print(a4) # [1. 2. 3. 4. 5.]print(a4.dtype) # float64
修改浮点型小数位
# 修改浮点型小数位print(c1)# 156 0.41847005 0.27127742 0.59553829 0.40378794 0.90308214 0.86897877 0.20906481 0.1832515]c2 = c1.round(2) # 保留两位小数print(c2)# [0.35 0.78 0.93 0.63 0.81 0.15 0.95 0.21 0.29 0.48]
完整代码
import numpy as npimport random# 创建数组a = [1, 2, 3, 4, 5]a1 = np.array(a)print(a1) # [1 2 3 4 5]b = range(10)b1 = np.array(b)print(b1) # [0 1 2 3 4 5 6 7 8 9]# 数组的类名print(type(a1)) # print(type(b1)) # # 数据的类型print(a1.dtype) # int32c1 = np.array([random.random() for i in range(10)])print(c1)# [0.65076793 0.78410146 0.94405112 0.58741766 0.23018049 0.80708392 0.5297858 0.14736833 0.53402873 0.21310533]print(c1.dtype) # float64d1 = np.array([True, False, False, True])print(d1.dtype) # bool# 指定数组类型a2 = np.array(a, dtype=float)print(a2.dtype) # float64a3 = np.array(a, dtype="float")print(a2.dtype) # float64# 修改数组类型d2 = d1.astype(int)print(d2) # [1 0 0 1]print(d2.dtype) # int32a4 = a1.astype(dtype="float")print(a4) # [1. 2. 3. 4. 5.]print(a4.dtype) # float64# 修改浮点型小数位print(c1)# 156 0.41847005 0.27127742 0.59553829 0.40378794 0.90308214 0.86897877 0.20906481 0.1832515]c2 = c1.round(2) # 保留两位小数print(c2)# [0.35 0.78 0.93 0.63 0.81 0.15 0.95 0.21 0.29 0.48]
第二节
数组的形状
import numpy as np# 数组的形状a = np.array([[3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9]])print(a.shape) # (2, 6) 2行6列
修改数组的形状
# 修改数组的形状a1 = a.reshape(3, 4) # 修改为3行4列print(a1.shape) # (3, 4) 3行4列print(a1)"""[[3 4 5 6] [7 8 4 5] [6 7 8 9]]"""print(a.shape) # (2, 6) 修改数组形状会指向新的对象,不会修改原数组本身
把数据转换成一维数组
# 把数据转换成一维数组a2 = a.flatten()print(a2) # [3 4 5 6 7 8 4 5 6 7 8 9]
数组的计算/广播机制,在运算过程中加减乘除的值被广播到所有元素上
# 数组的计算/广播机制,在运算过程中加减乘除的值被广播到所有元素上b = a*10print(b) # [[30 40 50 60 70 80][40 50 60 70 80 90]]c = np.arange(20)print(c) # [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]c1 = c.reshape(4, 5)print(c1)""" [[0 1 2 3 4] [5 6 7 8 9] [10 11 12 13 14] [15 16 17 18 19]] """d = np.array([1, 1, 1, 1, 1])d1 = d.reshape(1, 5)print(d1) # [[1 1 1 1 1]] (1, 5)print(c1 - d1)""" 所有元素全部 -1,即所有行全部减d1这个1行5列的数组[[-1 0 1 2 3] [4 5 6 7 8] [9 10 11 12 13] [14 15 16 17 18]] """# 广播的原则:如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符,或其中的一方的长度为1,则认为它们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行。
完整代码
import numpy as np# 数组的形状a = np.array([[3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9]])print(a.shape) # (2, 6) 2行6列# 修改数组的形状a1 = a.reshape(3, 4) # 修改为3行4列print(a1.shape) # (3, 4) 3行4列print(a1)"""[[3 4 5 6] [7 8 4 5] [6 7 8 9]]"""print(a.shape) # (2, 6) 修改数组形状会指向新的对象,不会修改原数组本身# 把数据转换成一维数组a2 = a.flatten()print(a2) # [3 4 5 6 7 8 4 5 6 7 8 9]# 数组的计算/广播机制,在运算过程中加减乘除的值被广播到所有元素上b = a*10print(b) # [[30 40 50 60 70 80][40 50 60 70 80 90]]c = np.arange(20)print(c) # [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]c1 = c.reshape(4, 5)print(c1)""" [[0 1 2 3 4] [5 6 7 8 9] [10 11 12 13 14] [15 16 17 18 19]] """d = np.array([1, 1, 1, 1, 1])d1 = d.reshape(1, 5)print(d1) # [[1 1 1 1 1]] (1, 5)print(c1 - d1)""" 所有元素全部 -1,即所有行全部减d1这个1行5列的数组[[-1 0 1 2 3] [4 5 6 7 8] [9 10 11 12 13] [14 15 16 17 18]] """# 广播的原则:如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符,或其中的一方的长度为1,则认为它们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行。
第三节
读取CSV文件
import numpy as npus_file_path = "./youtube_video_data/US_video_data_numbers.csv"# 将文件对象通过numpy.loadtxt方法 实例化t2 = np.loadtxt(us_file_path, delimiter=",", dtype="int")print(t2)print(t2.shape) # (1688, 4)
索引
# 取行print(t2[2]) # 取索引为2的行,即第三行""" [5845909 576597 39774 170708] """# 取连续的多行print(t2[2:]) # 取索引为2开始的所有行"""[[5845909 576597 39774 170708] [2642103 24975 4542 12829] [1168130 96666 568 6666] ... [ 142463 4231 148 279] [2162240 41032 1384 4737] [ 515000 34727 195 4722]] """# 取不连续的多行print(t2[[2, 3, 4]]) # 取索引为2,3,4的行""""[[5845909 576597 39774 170708] [2642103 24975 4542 12829] [1168130 96666 568 6666]]"""# t2[2] = t2[2,] = t2[2, :] 效果是一样的,都是取索引为2的行# 取列print(t2[:, 0]) # 取索引为0的所有元素,即第一列""" [4394029 7860119 5845909 ... 142463 2162240 515000] """# 取连续多列print(t2[:, 2:]) # 取索引为2的列开始往后所有的列""" [[ 5931 46245] [ 26679 0] [ 39774 170708] ... [ 148 279] [ 1384 4737] [ 195 4722]] """# 取不连续的多行print(t2[:, [2, 3]]) # 取索引为2,3的列""" [[ 5931 46245] [ 26679 0] [ 39774 170708] ... [ 148 279] [ 1384 4737] [ 195 4722]] """# 取行和列交叉的值print(t2[2, 3]) # 取第二行和第三列交叉的值""" 170708 """# 取多个不相邻的点# 取出来的结果是(0,0) (2,1) (2,3)(行,列)print(t2[[0, 2, 2], [0, 1, 3]])""" [4394029 576597 170708] """
完整代码
import numpy as npus_file_path = "./youtube_video_data/US_video_data_numbers.csv"# 将文件对象通过numpy.loadtxt方法 实例化t2 = np.loadtxt(us_file_path, delimiter=",", dtype="int")print(t2)print(t2.shape) # (1688, 4)# 取行print(t2[2]) # 取索引为2的行,即第三行""" [5845909 576597 39774 170708] """# 取连续的多行print(t2[2:]) # 取索引为2开始的所有行"""[[5845909 576597 39774 170708] [2642103 24975 4542 12829] [1168130 96666 568 6666] ... [ 142463 4231 148 279] [2162240 41032 1384 4737] [ 515000 34727 195 4722]] """# 取不连续的多行print(t2[[2, 3, 4]]) # 取索引为2,3,4的行""""[[5845909 576597 39774 170708] [2642103 24975 4542 12829] [1168130 96666 568 6666]]"""# t2[2] = t2[2,] = t2[2, :] 效果是一样的,都是取索引为2的行# 取列print(t2[:, 0]) # 取索引为0的所有元素,即第一列""" [4394029 7860119 5845909 ... 142463 2162240 515000] """# 取连续多列print(t2[:, 2:]) # 取索引为2的列开始往后所有的列""" [[ 5931 46245] [ 26679 0] [ 39774 170708] ... [ 148 279] [ 1384 4737] [ 195 4722]] """# 取不连续的多行print(t2[:, [2, 3]]) # 取索引为2,3的列""" [[ 5931 46245] [ 26679 0] [ 39774 170708] ... [ 148 279] [ 1384 4737] [ 195 4722]] """# 取行和列交叉的值print(t2[2, 3]) # 取第二行和第三列交叉的值""" 170708 """# 取多个不相邻的点# 取出来的结果是(0,0) (2,1) (2,3)(行,列)print(t2[[0, 2, 2], [0, 1, 3]])""" [4394029 576597 170708] """
第四节
将数组中的nan更换为对应列的均值
import numpy as npt = np.arange(24)t1 = t.reshape(4, 6).astype("float")t1[1, 2:] = np.nanprint(t1)print("*"*100)for i in range(t1.shape[1]): temp_col = t1[:, i] # nan == nan -> Ture # np.count_nonzero(temp_col != temp_col)返回的是对布尔类型的统计True=1,False=0、 nan_num = np.count_nonzero(temp_col != temp_col) # print(temp_col != temp_col) """ [False False False False] 0 [False False False False] 0 [False False False False] 0 [True False False False] 1 [True False False False] 1 [True False False False] 1 """ if nan_num != 0: # 不为零则说明这一列里面有nan # 将有nan的列中的不为nan的元素赋值给temp_not_nan_col temp_not_nan_col = temp_col[temp_col == temp_col] # 选中当前为nan的位置,把值赋值为不为nan的均值 temp_col[np.isnan(temp_col)] = temp_not_nan_col.mean()print(t1)"""result[[ 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.]]"""
第五节
numpy与matplotlib结合
美国YTB视频评论的直方图
import numpy as npfrom matplotlib import pyplot as pltus_file_path = "./youtube_video_data/US_video_data_numbers.csv"t_us = np.loadtxt(us_file_path, delimiter=",", dtype=int)# 取评论的数据t_us_comments = t_us[:, -1]# 选择比5000小的数据t_us_comments = t_us_comments[t_us_comments <= 1511]# 组距d = 50# 组数 = (max-min)//组距bin_nums = (t_us_comments.max() - t_us_comments.min()) // 5print(bin_nums)# 绘图plt.figure(figsize=(20, 8), dpi=80)plt.hist(t_us_comments, bin_nums)plt.grid(alpha=0.4)plt.show()
英国YTB视频评论和喜欢的散点图
import numpy as npfrom matplotlib import pyplot as pltuk_file_path = "./youtube_video_data/GB_video_data_numbers.csv"t_uk = np.loadtxt(uk_file_path, delimiter=",", dtype=int)# 选择喜欢的书比50万小的数据t_uk = t_uk[t_uk[:, 1] <= 500000]# 错误写法t_uk = t_uk[: , 1] <= 500000 这种写法反馈的是bool类型# 分别取出喜欢的列,和评论的列t_uk_comment = t_uk[:, -1]t_uk_like = t_uk[:, 1]# 绘图展示plt.figure(figsize=(20, 8), dpi=80)plt.scatter(t_uk_like, t_uk_comment)plt.show()
-
天天新动态:Numpy基本使用方法
Numpy基本使用方法第一节创建数组importnumpyasnpimportrandom 创建数组a=[1,2,3,4,5]a1=np array(a)pr
来源: 天天新动态:Numpy基本使用方法
[数据结构]单向链表插入排序(C语言)
世界报道:高铁站大厅没插座 客服:为了消防安全
滚动:你遇到过没?货车安装超亮后射灯:夜晚跟车根本看不清
时讯:首发2亿像素HP2!三星Galaxy S23 Ultra万元机皇来了
观察:口碑爆棚!剧版《三体》市占率16.51%排行第一
当前要闻:BC4-牛牛学说话之-浮点数
【独家焦点】关于可迭代对象、迭代器对象、生成器对象
环球快消息!AcWing 1077. 皇宫看守
年终会员大促:B站/芒果TV/腾讯视频/优酷/百度网盘3.6折起
三电机真恐怖!特斯拉Model S Plaid瞬间撕裂马力机张力带
焦点热讯:内置LED屏见过没?Naspec推出高端HDMI 2.1数据线
焦点要闻:美国一州提案禁售电动汽车 议员:就看不惯“禁售燃油车”的提议
环球热门:电动车新国标过渡期陆续到期 雅迪股价半月暴涨3成
vue3_ts_defineProps的使用
合作谈崩了 暴雪还想让网易当半年“备胎”?
特斯拉Model S之后:一改装公司推出福特电马灵车和礼宾车
今日讯!魅族Flyme牵手中国电信天翼终端!软硬件生态全面融合
学习笔记——定义切面优先级 ;Spring中的JdbcTemplate;JdbcTemplate的常用API
当前短讯!从0开始学Java 第一期 开发前的准备
小心吃官司 央视发布声明:2023兔年春晚内容别乱用
世界焦点!华硕发布Vivobook S 16 Flip笔记本:16寸3.2K OLED翻转屏
快播:联想一大波ThinkBook笔记本来袭:全新一代处理器 32G内存
天天时讯:国服还能玩6天:《守望先锋:归来》开启春节活动
天天速看:国家级出行平台!“强国交通”完成内测即将上线:接入微信、支付宝等
天天热门:研发回家过年了,留下这个低代码开源平台真好用!
天天热门:Python基础之函数
小米城市定制机来了!小米13信阳专属版今日交付:包装盒独一无二
网易、暴雪骂战正酣 NVIDIA站台《永劫无间》:即将支持DLSS3
环球速看:火锅店回应起火后要求顾客先结账:网友甩出一张神图
世界报道:《三体》电视剧从北京正负电子对撞机取景 物理学家纷纷追剧
全球今日报丨越跌越买!特斯拉降价是“好时机”:木头姐仍在大举加仓
全球关注:SSH 远程免密登录(公钥登录)
世界观速讯丨达到你城市标准没?去年白领平均年终奖8428元:仅1城连涨三年 到手先存
今日精选:大品牌好价!振德医用外科、KN95口罩29.9元起包邮
世界观察:互联网公司春节红包缩水一半:快手最豪横 狂撒20亿元
【独家焦点】50GB包年39元!小米云服务会员春节福利:最低5.5折
世界聚焦:SpaceX重型猎鹰火箭发射美国太空军机密卫星:不怕核打击
快资讯:opencv官网例程(4.7.0版本)运行示例
【优秀论文解读】BoW3D: Bag of Words for Real-time Loop Closing in 3D LiDAR SLAM
学习笔记——Spring中的AOP(AspectJ);Spring中AOP概述;Spring中AOP相关术语;AspectJ中切入点表达式;AspectJ中Jo
当前热讯:峰值21WQps、亿级DAU,小游戏《羊了个羊》是怎么架构的?
改款特斯拉Model 3即将登场:预计今年三季度投产
苹果版“望远镜”!曝iPhone 16 Pro/16 Ultra都会配备潜望长焦
科学家警告:2024或成全球史上最热年份
天天短讯!读编程与类型系统笔记10_泛型算法和迭代器
精选!【K哥爬虫普法】辛苦钱被中间商抽走八成,还因此锒铛入狱
育碧CEO让员工少花钱多做事 巴黎工作室将罢工抗议
苹果上海被强制执行1.44亿:这么多年还是第一次
世界通讯!微软否认“万人大裁员”:纯属谣言
天天讯息:7岁男孩爱撕倒刺致手指感染 医生提醒:处理不当会引发骨髓炎
全球今亮点!春节正常发货:仁和N95灭菌级口罩25片15.9元大促
世界要闻:网友3美元淘了一颗废品锐龙9 5900X:掰正针脚 点亮!
王晶武侠电影 《天龙八部之乔峰传》明日首映:年三十三大视频平台上线
Appuploader内测版本详解
热点评!使用Python的一维卷积
全球时讯:平民也能玩8GHz超频 技嘉B760主板奉上两大绝技:内存延迟大降7ns
被偷家了!德国人不买大众 把美系车特斯拉买成销冠
12nm后 DRAM怎么办?EUV光刻也不是万能药
每日时讯!安徽一劳斯莱斯婚车撞上石墩受损严重 博主:可向设置限宽人员索赔
《蚁人3:量子狂潮》角色海报发布 蚁人女儿貌美如花
象是哪个少数民族的生肖?十二生肖儿歌顺口溜
释迦牟尼佛成道日是哪一天?释迦牟尼佛的故事
国税地税税种有哪些?国税地税税种比例怎么分?
家有恶邻后面一句是什么?家有恶邻居怎么办?
最资讯丨学习笔记——AOP-代理模式
Python使用pyppeteer搭建网页截图api
三星移动硬盘质量怎么样?三星移动硬盘打不开怎么解决?
帅康燃气灶怎么样?帅康燃气灶打火后松手就熄灭怎么解决?
qq服务器拒绝发送离线文件是什么意思?qq服务器拒绝发送离线文件怎么办?
什么八字的人长得好看?什么八字的人长得丑?
光波炉的危害有哪些?光波炉与微波炉的区别
移动硬盘目录损坏如何恢复?移动硬盘目录损坏解决方法
今日快讯:官宣:F1中国站无缘2023赛季 已连续4年缺席
世界热文:开发预算突破7亿!网易400人团队“超级项目”《逆水寒》手游获批版号
天天快报!2023全球品牌价值500强出炉:苹果跌至第2 抖音杀入前10
全球观察:买一赠一:腾讯视频京东Plus会员联名年卡148元大促
《魔兽世界》电子骨灰盒出现bug:下载存档错误 账号被锁定
全球快消息!APM vs NPM
排面!小米登上《人民日报》头版
情侣拍照时戒指不慎掉入洱海 男生立即跳湖寻找:官方回应太危险不可取
天天热文:吃播账号“浪胃仙”被判属原公司:创始人涉职务侵占被捕
全球今日讯!学习笔记——Spring中组件扫描(包含扫描、排除扫描)、Spring中完全注解开发;Spring整合Junit4步骤
10辆特斯拉新车高速上集体燃烧 只剩一堆废铁架子
美国科技巨头依然寒气逼人 微软即将裁员:1万多人丢了工作
每日消息!《最后生还者》热播 收视率仅次于《龙之家族》
全球百事通!别人“借钱不还”怎么办?网友公布微信妙招 赶紧学起来
全球快资讯丨1月23日国服停!双方谈崩 网友吐槽暴雪绿茶:网易后到底谁来接盘?
世界热资讯!冬天加油枪都被冻住了 网友吐槽:国六B汽油里水加多了
当前关注:彻底闹掰!网易:暴雪提议蛮横 不符合商业逻辑
天天速看:价值10万土壤被快递弄丢 或致无法毕业 中通:找不到愿赔1000元 后续来了
央视点赞比亚迪:不惧冰雪 用技术发力高端
【天天时快讯】网友抱怨小米13前摄开孔太大!雷军回应:升级了3200万像素 无短板
数据类型的内置方法 可变类型与不可变类型
每日视讯:P1352 没有上司的舞会+P1122 最大子树和(树形DP入门)
丰收1年 挥霍掉400年的积累!东北黑土地不“黑”了
世界视讯!小米13打破安卓手机亮度纪录!雷军:显示效果特别好
环球微资讯!《魔兽世界》电子骨灰盒今日上线 网易提醒:小心安全隐患
三星旗下SEMES前员工窃密:卖给中国企业 获利6.5亿元
世界视讯!强制使用自家支付系统!苹果摊上事:俄罗斯开出12亿卢布罚单