# 导入包
import numpy as np
# 创建一维数组
a = np.arange(5)
print "一维numpy数组", a
print "数组的类型", a.dtype
print "数组维度", len(a.shape)
一维numpy数组 [0 1 2 3 4]
数组的类型 int32
数组维度 1
# 创建多维数组
b = np.array([np.arange(2), np.arange(2)])
print "二维numpy数组"
print b
print "数组维度", len(b.shape)
二维numpy数组
[[0 1]
 [0 1]]
数组维度 2
c = np.array([[13, 13], [3434, 5]])
print c
[[  13   13]
 [3434    5]]
# 创建零矩阵
Z = np.zeros((2, 3))
print Z
[[0. 0. 0.]
 [0. 0. 0.]]
# 矩阵元素索引
print c[1, 1] # 第2行第2列元素
5
# 创建特定类型矩阵
d = np.arange(5, dtype=np.uint16)
print d
[0 1 2 3 4]
e = np.arange(7, dtype='f')
print e
[0. 1. 2. 3. 4. 5. 6.]
# 矩阵运算
# 加法
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
print arr1
print arr2
print arr1 + arr2
[[1 2]
 [3 4]]
[[5 6]
 [7 8]]
[[ 6  8]
 [10 12]]
# 矩阵对应相乘
print arr1 * arr2
[[ 5 12]
 [21 32]]
# 标量运算
print arr1 + 1
print arr1 * 2
[[2 3]
 [4 5]]
[[2 4]
 [6 8]]
# 索引与切片
arr3 = np.array([np.arange(5), np.arange(5), np.arange(5)])
arr4 = np.arange(7)
print arr3
print arr4
[[0 1 2 3 4]
 [0 1 2 3 4]
 [0 1 2 3 4]]
[0 1 2 3 4 5 6]
# 一维数组索引
print arr4[5]
# 一维数组切片
print arr4[3:5]
# 数组翻转
print arr4[::-1]
5
[3 4]
[6 5 4 3 2 1 0]
# 多维数组索引
print "第三行第四列", arr3[2,3]
print "第三行", arr3[2]
第三行第四列 3
第三行 [0 1 2 3 4]
# 多维数组切片
print "第二行第三到五个数", arr3[2, 2:5]
print "第二列第一到二个数", arr3[0:2, 1]
print "取第二列", arr3[:, 1]
print "取第二行翻转", arr3[1, ::-1]
第二行第三到五个数 [2 3 4]
第二列第一到二个数 [1 1]
取第二列 [1 1 1]
取第二行翻转 [4 3 2 1 0]
# 布尔切片
index = np.array(['one', 'two', 'three'])
print index == 'one'
print '用索引选取第二行',arr3[index == 'two']
[ True False False]
用索引选取第二行 [[0 1 2 3 4]]
# 切片赋值
arr5 = np.array([np.arange(5), np.arange(5), np.arange(5)])
print arr5
[[0 1 2 3 4]
 [0 1 2 3 4]
 [0 1 2 3 4]]
arr5[arr5 < 2] = 2
print arr5
[[2 2 2 3 4]
 [2 2 2 3 4]
 [2 2 2 3 4]]
# 花式索引
print arr3
print "0,1行:"
print arr3[[0, 1]]
print "(0,0),(2,1)元素:"
print arr3[[0, 2], [0, 1]]
[[0 1 2 3 4]
 [0 1 2 3 4]
 [0 1 2 3 4]]
0,1行:
[[0 1 2 3 4]
 [0 1 2 3 4]]
(0,0),(2,1)元素:
[0 1]
# 矩阵转置
print arr3.T
[[0 0 0]
 [1 1 1]
 [2 2 2]
 [3 3 3]
 [4 4 4]]
# 矩阵变形
arr6 = np.arange(18)
print arr6
print arr6.reshape(2, 3, 3)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17]
[[[ 0  1  2]
  [ 3  4  5]
  [ 6  7  8]]

 [[ 9 10 11]
  [12 13 14]
  [15 16 17]]]

Numpy入门笔记第一天的更多相关文章

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

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

  2. Numpy入门笔记第三天

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

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

    鉴于最近用 vuejs 框架开发项目,其中有很多涉及到 es6 语法不太理解所以便认真地读了一下这本书. 地址:http://es6.ruanyifeng.com/#README 第一章:let ,c ...

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

      鉴于最近用 vuejs 框架开发项目,其中有很多涉及到 es6 语法不太理解所以便认真地读了一下这本书. 地址:http://es6.ruanyifeng.com/#README 第一章:let ...

  5. Numpy入门笔记第二天

    # 数组的组合 import numpy as np arr1 = np.arange(5) arr2 = np.arange(3) print arr1 print arr2 [0 1 2 3 4] ...

  6. python入门笔记第一天

    查询acsii命令 ord(‘A’) 导入模块python执行系统命令显示文件.查找文件方法1import osa = os.popen('目标').read()a 解释output = os.pop ...

  7. Elasticsearch7.X 入门学习第一课笔记----基本概念

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

  8. DX9入门笔记1-D3D初始化

    对3D编程期待已久,却一直叶公好龙浅尝辄止.近期在公司实习却无具体的工作安排,琢磨着学习个新的手艺,就又想起了3D Programming.这次从大名鼎鼎的龙书(Introduction to 3D ...

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

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

随机推荐

  1. Android之zip文件加密解压及进度条的实现

    zip文件的解压能够使用java的zip库,可是没有实现对加密文件的解压功能,这里能够使用zip4j来实现.详细能够參看该文<Android下zip压缩文件加密解密的完美解决方式>.该文件 ...

  2. LeetCode35.搜索插入位置 JavaScript

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...

  3. web相关文件加载顺序

    WEB相关文件的加载顺序   一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xml,读取<context-param>和<listener>两个节点. ...

  4. Java中的引用:强引用、软引用、弱引用、幻象引用(虚引用)

    Java语言中,除了原始数据类型的变量(八大基本数据类型),其他都是引用类型,指向各种不同的对象. 理解引用对于我们掌握Java对象生命周期和JVM内部相关机制都是有帮助的. 不同的应用类型,不同之处 ...

  5. js怎样得出数组中某个数据最大连续出现的次数

     1:js怎样得出数组中某个数据最大连续出现的次数 var test=[1,2,3,3,2,2,2,3,3,3,3,5,3,3,3,3,3] ;    var j  = 0 ;    var max  ...

  6. 阿里云CentOS7部署ASP.NET Core

    本文主要介绍了阿里云CentOS7下如何成功的发布ASP.Core应用并使用nginx进行代理, 并对所踩的坑加以记录; 环境.工具.准备工作 服务器:阿里云64位CentOS 7.4.1708版本; ...

  7. tomcat 远程debug配置,教你远程调试代码,解决线上故障

      IDEA远程DEBUG Tomcat很简单,配置如下: 1.修改tomcat服务器配置 打开tomcat/bin/catalina.sh 在空白处添加如下参数 CATALINA_OPTS=&quo ...

  8. 数据结构08——Trie

    一.什么是Trie? Trie树,一般被称为字典树.前缀树等等,Trie是一种多叉树,这个和二分搜索树.堆.线段树这些数据结构不一样,因为这些都是二叉树.,Trie树除了是一种多叉树,它是一种哈希树的 ...

  9. hadoop分布式安装及其集群配置笔记

    各机器及角色信息: 共10台机器,hostname与ip地址映射在此不做赘述.此为模拟开发环境安装,所以不考虑将NameNode和SecondaryNameNode安装在同一台机器. 节点 角色 na ...

  10. linux用户及文件管理

    帮助命令 whatis 命令  #显示命令的简短功能 man    命令  #查看手册页和命令描述 命令--help    #适用于外部命令 help    命令  #适用于内部命令 type 命令  ...