在实际操作中,我们需要需要养成习惯,任何浪费空间或者时间的操作都需要减少,因为我们操作的是大数据,可能造成灾难性的放大,使用numpy的思想,尽量减少不必要的拷贝,我们操作的对象是大数据。

# -*- coding: utf-8 -*-# numpy是针对list操作的import numpy as np# 定义一个一维3个的数组x = np.array([1,2,3])
print(x)
#%%
# 切片索引
x1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(x1)print(x1[:,0])#%%
# 建立0-1之间的随机矩阵
x2 = np.random.random((3,3,3))
print(x2)#%%
print(x2[:,:,0])
#%%
# 特别需要注意切片使用
x2[:,:,0] =0
print(x2[:,:,0])
print(x2)#%%
print(x1)
# 对第一个axis取平均值
print(np.average(x1,axis=0))
# 对第一个axis取平均值
print(np.average(x1,axis=1))# 需要理解axis的含义,对应的是那个纬度的平均值,就是把对应的纬度压缩成1#%%
# 将数组向量化,使用numpy计算
import time
x = np.random.random((1000,1000))
ans =np.zeros((1000,1000))
# 遍历矩阵,枚举矩阵每一行,再次枚举每一行里面的每一个元素
t = time.time()
for i,row in enumerate(x):for j,elem in enumerate(row):ans[i][j] = elem +1
print(time.time()-t)# 使用矩阵相加
t = time.time()
ans = x+1
print(time.time()-t)
# 使用np.add计算,比第二种方法要快40倍,第一种600倍,我的这台计算机
t = time.time()
np.add(x,1,ans)
print(time.time()-t)#0.5762310028076172
#0.04102921485900879
#0.001998424530029297#%%
# numpy的广播,broadcastingx = np.array([1,2,3])
y = np.array([[1,1,1],[2,2,2],[3,3,3]])z = y-x
print(z)
print(end ='\n')# 直接使用broadcasting实现
x =y = np.array([1,2,3])
y = np.tile(y,[3,1]).T
z = y-x
print(z)
print(end ='\n')# 间接使用,不能直接使用y.T,只有使用y[:,None]
x =y = np.array([1,2,3])
t = y[:,None]
print(t)
z = t -x
print(z)
print(end ='\n')# 使用numpy的思想,尽量减少不必要的拷贝,我们操作的对象是大数据

Python学习:numpy的使用技巧和注意相关推荐

  1. 机器学习(四):Python与Numpy的使用技巧

    这是一篇机器学习的介绍,本文不会涉及公式推导,主要是一些算法思想的随笔记录. 适用人群:机器学习初学者,转AI的开发人员. 编程语言:Python 下面从自己项目中遇到的一些python.numpy知 ...

  2. Python 学习 —— Numpy 、Pandas 傻傻分不清楚

    之前的文章里面谈到过,我从R转到Python上,一个很大的不习惯就是R的数据结构比较简单,但是Python的数据类型比较多,很容易就令人头脑混乱.但是今天学习了一下Udacity的课程,顿时就清楚多了 ...

  3. Python技术分享:Python学习的一些小技巧

    "人生苦短,我选Python".那么,你真的掌握了Python吗?下面小千为大家介绍初学Python的17个学习小技巧! 1.交换变量 有时候,当我们要交换两个变量的值时,一种常规 ...

  4. [转载] Python 学习 - Numpy

    参考链接: Python中的numpy.iscomplex Numpy 学习 Ndarray对象 特点 N 维数组对象 一系列同类型数据的集合 下标从0开始  每个元素在内存中占有相同存储大小  由什 ...

  5. Python学习——Numpy

    Numpy 文章目录 Numpy Ndarray 对象 数据类型对象 (`dtype`) 创建数组 切片和索引 广播 统计函数 排序 搜索 计数函数 Matplotlib 常用操作汇总 Ndarray ...

  6. python学习--numpy的数组

    numpy中的数组类型为ndarry 创建 # -*- coding: utf-8 -*- import numpy as np#用列表或元组创建 a = np.array([[1,2,3],[4,5 ...

  7. python学习——numpy库

    属性: 维度 元素类型 大小 形状 创建一维 : np.arange np.linspace 注意range()只能for循环 创建零数组 一数组 单位数组 数组拼接: hstack vstack s ...

  8. python学习——numpy基础操作

    numpy 基础操作 1 创建数组 2 数组常用属性和函数 3 数组元素增删 4 元素查找 5 数学运算 6 数组切片 1 创建数组 import numpy as np #以后numpy简写为np ...

  9. 从入门到入土:机器学习part02|python|初步学习|numpy|Matplotlib

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  10. 使用Python和Numpy进行波士顿房价预测任务(二)【深度学习入门_学习笔记】

    使用Python和Numpy进行波士顿房价预测任务–详解 目录: 一.数据处理 (1)读入数据 (2)数据形状变换 (3)数据集划分 (4)数据归一化处理 (5)封装成load data函数 二.模型 ...

最新文章

  1. Java中 break、continue 和 return三者之间的区别
  2. c 5.6 mysql 配置文件_Windows系统中MySQL 5.6的配置文件(my.ini)修改方法_MySQL
  3. Filecoin网络目前总质押量约为3314万枚FIL
  4. Java ---学习笔记(泛型)
  5. Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果...
  6. 看雪 好文 汇集贴(持续更新)
  7. 【转】SQL server 2000 各种版本
  8. python 图像倾斜校正_通过OpenCV和Python进行文本倾斜校正
  9. 电子罗盘在终端的应用
  10. 如何利用计算机换算16进制,16进制怎么转换10进制?计算机进制转换方法汇总
  11. linux 查看电池日志,linux终端查看笔记本电池电量
  12. 使用EXCEL计算并绘制MACD指标
  13. 流量不清零:用户开心,运营商无奈
  14. Opencv -- 18图像像素类型转换与归一化
  15. 大青云不显示服务器,《大青云》8月30日合服公告
  16. 三维切面(水平面、冠状面、矢状面)的几种操作
  17. FME在测量平差上面的运用
  18. 小马哥---高仿苹果6sp主板型号 W3215 6582刷机拆机主板图
  19. 详细解析英特尔奔腾金牌银牌处理器规格参数
  20. 电子招标系统的5大优势

热门文章

  1. 计算机组成原理 华南理工,华南理工2017计算机组成原理随堂练习
  2. 中运量71路线路图_双语导乘对标“航空式服务”,71路中运量车队服务进博会出“新招”...
  3. MySQL MyISAM和InnoDB存储引擎的比较
  4. 上的网页显示拒绝访问_DLink家庭路由器上发现6个漏洞
  5. python中gui实现一个登录界面_Python:简单的登陆GUI界面
  6. oracle通过sid远程登录,oracle怎么捕获用户登录信息,如SID,IP地址等
  7. mysql反向生成uml类图_UML类图自动生成,太爽了
  8. 循序渐进linux——基础知识、服务器搭建、系统管理、性能调优、集群应用_第四讲,Proxmox部署与应用...
  9. mysql 将查询所得结果集的某一字段拼接成字符串
  10. c语言 元组顺序随机化,为什么关系中的元组没有先后顺序且不允许有重复元组?...