# 数组的组合
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入门笔记第二天的更多相关文章

  1. Numpy入门笔记第一天

    # 导入包 import numpy as np # 创建一维数组 a = np.arange(5) print "一维numpy数组", a print "数组的类型& ...

  2. 面向矩阵的numpy入门笔记

    我先声明我学numpy的目的:在python中使用矩阵(我需要在机器学习中使用矩阵),所以我的目的很明确,矩阵: 矩阵在numpy中叫ndarray(The N-dimensional array), ...

  3. 【js 笔记】读阮一峰老师 es6 入门笔记 —— 第二章

    第二章:变量的解构赋值 在es6 版本前,如果要为多个变量赋不同值,我想是件比较麻烦的事情.但es6 版本新推出了一个新技术那就是今天的主角变量的解构赋值. 变量解构赋值分为两种方法:数组解构赋值 和 ...

  4. Numpy入门笔记第三天

    __TITLE__ = "利用Numpy进行历史股价分析" __DATASOURCE__ = "ATAGURU" # CSV文件读取 import numpy ...

  5. Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD

    原文:Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链 ...

  6. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  7. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  8. OpenGLES入门笔记四

    原文参考地址:http://www.cnblogs.com/zilongshanren/archive/2011/08/08/2131019.html 一.编译Vertex Shaders和Fragm ...

  9. MySQL入门笔记

    MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: ·          rpm包形式 ·          通用二进制 ...

随机推荐

  1. 翻译 TI SerialBLEbridge V 1.4.1

    原文地址:http://processors.wiki.ti.com/index.php/SerialBLEbridge_V_1.4.1 Sample App Overview This page d ...

  2. 「微信小程序」PHP异步进程async-helper实例详解

    PHP异步进程async-helper实例详解 PHP 的异步进程助手,借助于 AMQP 实现异步执行 PHP 的方法,将一些很耗时.追求高可用.需要重试机制的操作放到异步进程中去执行,将你的 HTT ...

  3. web前端时间戳转时间类型显示

    1.jsp头部加:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> ...

  4. css模型框

    在 CSS 中,width 和 height 指的是内容区域的宽度和高度.增加内边距.边框和外边距不会影响内容区域的尺寸,但是会增加元素框的总尺寸. 假设框的每个边上有 10 个像素的外边距和 5 个 ...

  5. Linux系统Java环境配置

    1.卸载Linux系统自带的JDK java -version rpm -qa | grep -i java 我们要删除掉自带的JDK环境 rpm -e --nodeps java-1.6.0-ope ...

  6. bootstrap世界探索2——万物的起源(网格系统)

    万物的起源是非常神奇的,谁又能想到小小的细胞(文字排版)竟能构建大千世界. <!DOCTYPE html> <html lang="en"> <hea ...

  7. TP5.0中多图上传文件名重复问题

    最近在做项目的时候出现了一个问题,这里记录一下: 问题: 使用TP5.0框架自带的文件上传方法后,发现多图上传可能会出现文件名重复的问题. 问题代码: 找到TP5框架上传文件命名方法,/thinkph ...

  8. 每日Linux命令(2)-cal

    cal命令用来显示公历,公历是现在国际通用的历法. 一.格式 cal [选项] [参数] 二.功能 显示当前日历年月日,也可以指定显示某年全年日历及时间. 三.命令选项 -h 关闭今天显示的高亮 -j ...

  9. Centos7 安装 Python 的笔记

    Centos7 安装 Python 的笔记 注意:系统自带的Python2.7不要改动,最好也不要出错,不然yum之类的工具可能会出错. 安装Python3.7.0 TensorFlow对Python ...

  10. 数据结构与算法之排序(3)插入排序 ——in dart

    插入排序的思想比冒泡.选择要复杂,效率也比前两者更高.插入排序算法中运用了分治.逆向冒泡等思想,假设i之前的都是排好序的,i之后的都是待比较并排序的,然后逐次逆向向前比较,若小于前值,则将前值循环依次 ...