# 导入包
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. ts简单点

    typescript 简洁使用 *做最简洁核心的记录,可以节约时间.再是提炼概括,理解归纳.便于日后查阅联想* > typescript原则之一: 对值所具有的结构进行类型检查 #### 基础类 ...

  2. Java面向对象的三个特征

    首先,Java面向对象的三大特征: 三大特征: ▪ 封装 ▪ 继承 ▪ 多态 首先面向对象的第一个特性 封装 : 封装:就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操 ...

  3. eclipse中svn插件装好后出现"位置错误"的处理

    错误现象: 验证位置时发生错误:"org.apache.subversion.javahl.ClientException:svn:E210004: Number is larger tha ...

  4. everything对已经不存在的文件还进行索引,报错“系统找不到指定的驱动器”

    使用everything时,总是报下面的错.也就是对于已经不存在的文件或者文件夹还保留着对应的索引. 如下图: 这个其实我们在选项中设置一下规则就可以了. 一. 二. 三. ok啦.

  5. dispatch 之 常见函数小结

    你好2019!一起努力呀! 直奔主题 1.dispatch_barrier_async VS  dispatch_barrier_sync Barrier blocks only behave spe ...

  6. ES module 实现方式

    随着js社区不断发展,js功能更加强大,细数js的几种 module 方式. 整理了七种模块化方式 1.作为新手,练习小的demo,比较喜欢的方式.不适合大的项目. <!--html--> ...

  7. JavaScript变量类型检测总结

    JavaScript中的变量类型: 基本类型值:Undefined,Null,Boolean,Number和String. 按值访问(可直接操作保存在变量中的变量值): 复制规则:当复制基本类型值时: ...

  8. sizeof 用于返回一个对象或者类型所占据的内存数

    整数类型 sizeof(int); 4字节or8字节 函数 sizeof(函数); 函数返回值类型占据的字节数 字符数组 char c[] = "abc"; sizeof(c); ...

  9. Android Studio 2.3.3 出现Error:(26.13) Fail to resole: com.android.support.appcompat永久解决方法

    Android Studio 出现Error(26.13):Fail to resole:com.android.support.appcompat-v7.28_ Install Repository ...

  10. Iframe 定义内联的子窗口(框架)

    1.Iframe 定义内联的子窗口(框架),用于在网页内显示网页 语法: <iframe src="URL"></iframe>URL 指向隔离页面的位置, ...