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包形式 · 通用二进制 ...
随机推荐
- alter修改表
alter修改表的基础语句,语法如下: ALTER TABLE table_name ADD column_name|MODIFY column_name| DROP COLUMN column_na ...
- Xcode缓存数据清除
1. 移除 APP 打包的ipa历史版本(Archives) 不可恢复,就是你打的包,如果需要dysm文件,及时备份 路径:~/Library/Developer/Xcode/Archives 2. ...
- css 中的 initial inherit unset 意思
写css时,在对属性进行选值,经常遇到unset , initial,inherit三个值.这几个值的含义. 1.inherit 可继承性 继承的意思. 每一个 CSS 属性都有一个特性就是,这个属性 ...
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
原文链接:http://blog.csdn.net/fanbin168/article/details/51485969 批量插入 (17597条数据批量插入耗时1.7秒) using Sys ...
- MySQL架构与引擎初识
一.MySQL逻辑架构 1.连接层: 最上层是一些客户端和连接服务,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等. 2.服 ...
- PHP+jQuery实现双击修改table表格
<td signs="name"> <input type="text" disabled="disabled" read ...
- 01.centos7环境准备
博客为日常工作学习积累总结: 1.环境准备: 系统版本:CentOS-7-x86_64-Minimal-1810.iso 运行环境:虚拟机windows上的VM 15 系统安装:参照老男孩运维要求 2 ...
- echarts动态加载数据无法更新series 无法更新图表
最近遇到一个Echarts图表无法动态更新数据的问题 最初我在option中设置series的值为一个数组,想着通过修改数组来动态更新图表,但是没变 化,后来发觉是因为图表数据会和之前的合并 看官方的 ...
- vue-cli 项目安装失败 tunneling socket could not be established, cause=connect ECONNREFUSED
1.安装vue-cli npm install vue-cli -g 2.初始化项目 vue init webpack project 此时报错:vue-cli · Failed to downloa ...
- 运行Delphi XE10的MongoDB例程,测试Delphi插入记录性能
Delphi XE10支持MongoDB的数据库,提供了个例子restaurants可批量导入数据. 本文对比Delphi例子与MongoDB自带的mongoimport导入批量数据的性能. 步骤: ...