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包形式 · 通用二进制 ...
随机推荐
- 翻译 TI SerialBLEbridge V 1.4.1
原文地址:http://processors.wiki.ti.com/index.php/SerialBLEbridge_V_1.4.1 Sample App Overview This page d ...
- 「微信小程序」PHP异步进程async-helper实例详解
PHP异步进程async-helper实例详解 PHP 的异步进程助手,借助于 AMQP 实现异步执行 PHP 的方法,将一些很耗时.追求高可用.需要重试机制的操作放到异步进程中去执行,将你的 HTT ...
- web前端时间戳转时间类型显示
1.jsp头部加:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> ...
- css模型框
在 CSS 中,width 和 height 指的是内容区域的宽度和高度.增加内边距.边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸. 假设框的每个边上有 10 个像素的外边距和 5 个 ...
- Linux系统Java环境配置
1.卸载Linux系统自带的JDK java -version rpm -qa | grep -i java 我们要删除掉自带的JDK环境 rpm -e --nodeps java-1.6.0-ope ...
- bootstrap世界探索2——万物的起源(网格系统)
万物的起源是非常神奇的,谁又能想到小小的细胞(文字排版)竟能构建大千世界. <!DOCTYPE html> <html lang="en"> <hea ...
- TP5.0中多图上传文件名重复问题
最近在做项目的时候出现了一个问题,这里记录一下: 问题: 使用TP5.0框架自带的文件上传方法后,发现多图上传可能会出现文件名重复的问题. 问题代码: 找到TP5框架上传文件命名方法,/thinkph ...
- 每日Linux命令(2)-cal
cal命令用来显示公历,公历是现在国际通用的历法. 一.格式 cal [选项] [参数] 二.功能 显示当前日历年月日,也可以指定显示某年全年日历及时间. 三.命令选项 -h 关闭今天显示的高亮 -j ...
- Centos7 安装 Python 的笔记
Centos7 安装 Python 的笔记 注意:系统自带的Python2.7不要改动,最好也不要出错,不然yum之类的工具可能会出错. 安装Python3.7.0 TensorFlow对Python ...
- 数据结构与算法之排序(3)插入排序 ——in dart
插入排序的思想比冒泡.选择要复杂,效率也比前两者更高.插入排序算法中运用了分治.逆向冒泡等思想,假设i之前的都是排好序的,i之后的都是待比较并排序的,然后逐次逆向向前比较,若小于前值,则将前值循环依次 ...