numpy学习总结
1、numpy安装
1.pip安装
pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple(国外太慢直接用清华源)
2.解释器中安装
(1)先添加清华源:https://pypi.tuna.tsinghua.edu.cn/simple/
(2)搜索numpy并安装
3.Linux下安装
Ubuntu & Debian:
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
CentOS/Fedora:
sudo dnf install numpy scipy python-matplotlib ipython python-pandas sympy python-nose atlas-devel
4.Mac 系统
Mac 系统的 Homebrew 不包含 NumPy 或其他一些科学计算包,所以可以使用以下方式来安装:
pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
2、numpy对象
NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
ndarray 内部由以下内容组成:
- 一个指向数据(内存或内存映射文件中的一块数据)的指针。
- 数据类型或 dtype,描述在数组中的固定大小值的格子。
- 一个表示数组形状(shape)的元组,表示各维度大小的元组。
- 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。
3、numpy支持的数据类型
名称 | 描述 |
---|---|
bool_ | 布尔型数据类型(True 或者 False) |
int_ | 默认的整数类型(类似于 C 语言中的 long,int32 或 int64) |
intc | 与 C 的 int 类型一样,一般是 int32 或 int 64 |
intp | 用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64) |
int8 | 字节(-128 to 127) |
int16 | 整数(-32768 to 32767) |
int32 | 整数(-2147483648 to 2147483647) |
int64 | 整数(-9223372036854775808 to 9223372036854775807) |
uint8 | 无符号整数(0 to 255) |
uint16 | 无符号整数(0 to 65535) |
uint32 | 无符号整数(0 to 4294967295) |
uint64 | 无符号整数(0 to 18446744073709551615) |
float_ | float64 类型的简写 |
float16 | 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位 |
float32 | 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位 |
float64 | 双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位 |
complex_ | complex128 类型的简写,即 128 位复数 |
complex64 | 复数,表示双 32 位浮点数(实数部分和虚数部分) |
complex128 | 复数,表示双 64 位浮点数(实数部分和虚数部分) |
4、numpy的初级应用
1.np.array应用:
import numpy as np
a = np.array([1, 2, 3]) #创建初始化为[1,2,3]的numpy的数组
b = np.array([[1, 2], [3, 4]])
print (a)
print (b)
# 输出结果
# [1 2 3]
# [[1 2]
# [3 4]]
5、numpy 切片和索引
1.切片:本质和list的切片操作一样
冒号 : 的解释:如果只放置一个参数,如 [2],将返回与该索引相对应的单个元素。如果为 [2:],表示从该索引开始以后的所有项都将被提取。如果使用了两个参数,如 [2:7],那么则提取两个索引(不包括停止索引)之间的项。
省略号 …,来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含行中元素的 ndarray。
重点是多维数组的切片操作:
例:
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print (a[...,1]) # 行不用管,第2列元素
print (a[1,...]) # 第2行元素,列不用管
print (a[...,1:]) # 第2列及剩下的所有元素
# 输出结果为:
# [2 4 5]
# [3 4 5]
# [[2 3]
# [4 5]
# [5 6]]
未完待续……