Numpy入门笔记第二天
# 数组的组合
import numpy as np
arr1 = np.arange(5)
arr2 = np.arange(3)
print arr1
print arr2
[0 1 2 3 4]
[0 1 2]
print np.hstack((arr1, arr2))
[0 1 2 3 4 0 1 2]
arr3 = np.array([2, 3, 4])
print np.vstack((arr3, arr2))
[[2 3 4]
[0 1 2]]
print np.dstack((arr2, arr3)) # 这里是一一对应,形成新的数组
[[[0 2]
[1 3]
[2 4]]]
print np.column_stack((arr2, arr3)) # 这里是把原数组当列组合
print np.row_stack((arr2, arr3))
[[0 2]
[1 3]
[2 4]]
[[0 1 2]
[2 3 4]]
# 数组分割
arr4 = np.arange(15).reshape(3, 5)
print arr4
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
# 水平分割
print np.hsplit(arr4, 5)
[array([[ 0],
[ 5],
[10]]), array([[ 1],
[ 6],
[11]]), array([[ 2],
[ 7],
[12]]), array([[ 3],
[ 8],
[13]]), array([[ 4],
[ 9],
[14]])]
# 垂直分割
print np.vsplit(arr4, 3)
[array([[0, 1, 2, 3, 4]]), array([[5, 6, 7, 8, 9]]), array([[10, 11, 12, 13, 14]])]
# 深度分割
arr5 = np.arange(27).reshape(3, 3, 3)
print arr5
print np.dsplit(arr5, 3)
[[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]]
[[ 9 10 11]
[12 13 14]
[15 16 17]]
[[18 19 20]
[21 22 23]
[24 25 26]]]
[array([[[ 0],
[ 3],
[ 6]],
[[ 9],
[12],
[15]],
[[18],
[21],
[24]]]), array([[[ 1],
[ 4],
[ 7]],
[[10],
[13],
[16]],
[[19],
[22],
[25]]]), array([[[ 2],
[ 5],
[ 8]],
[[11],
[14],
[17]],
[[20],
[23],
[26]]])]
# 数组维数
print "arr5的维数", arr5.ndim
arr5的维数 3
# 数组元素个数
print "arr5的元素个数", arr5.size
arr5的元素个数 27
# 虚数数组
arr6 = np.array([1.+1.j, 2.-3.j])
print arr6
print arr6.real
print arr6.imag
[1.+1.j 2.-3.j]
[1. 2.]
[ 1. -3.]
# 数组展开
arr7 = np.arange(15).reshape(3, 5)
print arr7
print arr7.flat[:]
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
# 开根号
print np.sqrt(arr7)
[[0. 1. 1.41421356 1.73205081 2. ]
[2.23606798 2.44948974 2.64575131 2.82842712 3. ]
[3.16227766 3.31662479 3.46410162 3.60555128 3.74165739]]
# 条件式
arr8 = np.array([1999, 12, 3])
arr9 = np.array([1999, 5, 25])
cond = arr8 >= arr9
print arr8
print arr9
print cond
print np.where(cond, arr8, arr9)
[1999 12 3]
[1999 5 25]
[ True True False]
[1999 12 25]
# 求和
print arr7.sum()
print "前几项和", arr7.cumsum()
print "前几项积", arr7.cumprod()
# 平均
print "按行求平均数", arr7.mean(axis = 1)
print "按列求平均", arr7.mean(axis = 0)
print "全部元素平均值", arr7.mean()
105
前几项和 [ 0 1 3 6 10 15 21 28 36 45 55 66 78 91 105]
前几项积 [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
按行求平均数 [ 2. 7. 12.]
按列求平均 [5. 6. 7. 8. 9.]
全部元素平均值 7.0
# 布尔数组
arrV = np.arange(15)
arrVI = arrX < 7
print arrVI
print "是否存在True", arrVI.any()
print "是否全True", arrVI.all()
[ True True True True True True True False False False False False
False False False]
是否存在True True
是否全True False
# 排序
arrVII = np.random.randn(8)
print arrVII
arrVII.sort()
print arrVII
[-0.92985535 -0.84881494 -0.7441014 1.20441486 0.86034497 0.91084961
-0.87441653 1.91787882]
[-0.92985535 -0.87441653 -0.84881494 -0.7441014 0.86034497 0.91084961
1.20441486 1.91787882]
# 按列排序
arrVIII = np.random.randn(3, 5)
print arrVIII
arrVIII.sort(0)
print arrVIII
[[ 1.70201094 0.34485293 -1.10294569 1.31655267 1.87062538]
[ 0.45357185 0.50472001 0.41922422 0.56049801 -0.4344195 ]
[-0.50074532 -0.45866882 0.19640063 -1.16866863 -0.70844226]]
[[-0.50074532 -0.45866882 -1.10294569 -1.16866863 -0.70844226]
[ 0.45357185 0.34485293 0.19640063 0.56049801 -0.4344195 ]
[ 1.70201094 0.50472001 0.41922422 1.31655267 1.87062538]]
# 去重并排序
arrIX = np.array([2, 3, 2, 1, 3, 2, 1])
print np.unique(arrIX)
[1 2 3]
# 矩阵操作
matrix1 = np.arange(16).reshape(4, 4)
matrix2 = np.random.randn(4, 4)
print matrix1
print matrix2
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
[[ 6.71869322e-01 1.75764408e+00 2.52124525e-02 7.89585893e-01]
[ 1.39467620e+00 -1.34821488e+00 -4.44994744e-01 -7.90621039e-01]
[ 5.07088955e-01 -2.06864947e+00 -5.42713373e-04 -7.40259775e-01]
[-2.43921781e+00 7.90129596e-02 8.92451376e-01 -2.24320345e+00]]
# 矩阵乘法
print matrix1.dot(matrix2)
[[ -4.9087993 -5.24847494 2.23127396 -9.00075094]
[ -4.3711326 -11.56930421 4.11977944 -20.93874442]
[ -3.8334659 -17.89013347 6.00828493 -32.8767379 ]
[ -3.29579919 -24.21096273 7.89679041 -44.81473138]]
# 矩阵的逆
print np.linalg.inv(matrix2)
[[ 0.87118247 0.13529526 0.65368188 0.04324695]
[ 0.2436198 0.28682038 -0.45815611 0.13585352]
[ 2.14437795 -1.43465052 2.77022765 0.34626701]
[-0.0855926 -0.70778596 0.37518698 -0.35027053]]
# 行列式计算
det2 = np.linalg.det(matrix2)
print det2
3.0512946673304944
# 随机数模块(生成大量随机数比python自带的随机数快)
# numpy.random
# 置随机数种子
np.random.seed(1203)
print np.random.rand() # 均匀分布的样本
print np.random.randint(12, 23) # 限定范围的整数随机数
print np.random.randn() # 标准正态分布样本
0.624586922441
15
2.74538297088
Numpy入门笔记第二天的更多相关文章
- Numpy入门笔记第一天
# 导入包 import numpy as np # 创建一维数组 a = np.arange(5) print "一维numpy数组", a print "数组的类型& ...
- 面向矩阵的numpy入门笔记
我先声明我学numpy的目的:在python中使用矩阵(我需要在机器学习中使用矩阵),所以我的目的很明确,矩阵: 矩阵在numpy中叫ndarray(The N-dimensional array), ...
- 【js 笔记】读阮一峰老师 es6 入门笔记 —— 第二章
第二章:变量的解构赋值 在es6 版本前,如果要为多个变量赋不同值,我想是件比较麻烦的事情.但es6 版本新推出了一个新技术那就是今天的主角变量的解构赋值. 变量解构赋值分为两种方法:数组解构赋值 和 ...
- Numpy入门笔记第三天
__TITLE__ = "利用Numpy进行历史股价分析" __DATASOURCE__ = "ATAGURU" # CSV文件读取 import numpy ...
- Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD
原文:Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- React.js入门笔记
# React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...
- OpenGLES入门笔记四
原文参考地址:http://www.cnblogs.com/zilongshanren/archive/2011/08/08/2131019.html 一.编译Vertex Shaders和Fragm ...
- MySQL入门笔记
MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: · rpm包形式 · 通用二进制 ...
随机推荐
- Hbuilder软件打包简述
Hbuilder打包简述: : Hbuilder安装打包Android不需要任何证书可以正常打包. : ios打包需要.mobileprovision证书和P12文件.(.mobileprovisio ...
- PLSQL 误删表恢复操作
本文转载于:https://blog.csdn.net/qiushuichangtian888/article/details/10911249
- 使用 runtime 实现字符串转方法,并传递参数
利用runtime的动态机制实现字符串转方法并传递参数 使用 SEL 关键字引用方法声明,使用 methodForSelector 寻找方法实现, 使用函数指针调用方法. - (void)action ...
- 【Java项目】GUI图形用户界面(不断更新中!)
<目录> 1 创建一个简单的窗体 2 如何进行事件监听 (1) 按钮监听 (2) 键盘监听 (3) 鼠标监听 3 容器 (1) 创建一个简单的对话框 (2) 创建一个简单的模态对话框 (3 ...
- 仓位 001 998 AUFNAHME不存在(L9009)
测试做一个物料库存561初始化时,库位是上启用了WM的.提示“C01 998 AUFNAHME 不存在”,998 库存余额的初始条目 是缺省的存储类型.用LS25在正式系统中,CO1 998下有AUF ...
- 非空校验在oracle和mysql中的用法
oracle判断是否为null nvl(参数1,参数2) :如果参数1为null则返回参数2,否则返回参数1 mysql判断是否为null ifnull(参数1,参数2) :如果参数1为null则返回 ...
- ORACLE->SQL*Loader[20180712]
https://docs.oracle.com/cd/B28359_01/server.111/b28319/ldr_concepts.htm#g1013706 SQL*Loader将外部 ...
- 服务器远程连接mysql问题解决
一. centos下解决远程连接不上的问题. 1.查看centos 下防火墙是否关闭: 通过进程: ps -aux |grep firewalld ps -ef |grep firewalld 通过服 ...
- pomelo 的一些监控和维护插件(工具)
POMELO 提供了非常多的插件,可以方便我们日常对其的一些操作和开发工作,同样的我们也可以自己开发一些定制的插件让其伴随整个POMELO的生命周期运作(这里 不是要介绍如何制作POMELO插件),这 ...
- 技巧-如何通过hive开发平台上传csv文件
通过数据交换平台上传较大的文件时,经常会出现导入失败情况,换种方式通过新数据开发平台(stark)也可以轻松实现外部数据与hive的数据关联. --第一步.导入csv文件到hive --stark数据 ...