主要概念
数据类型
类型 | 解释 |
---|---|
bool | 布尔类型,1 个字节,值为 True 或 False |
int | 整数类型,通常为 int64 或 int32 |
intc | 与 C 里的 int 相同,通常为 int32 或 int64 |
intp | 用于索引,通常为 int32 或 int64 |
int8 | 字节(从 -128 到 127) |
int16 | 整数(从 -32768 到 32767) |
int32 | 整数(从 -2147483648 到 2147483647) |
int64 | 整数(从 -9223372036854775808 到 9223372036854775807) |
uint8 | 无符号整数(从 0 到 255) |
uint16 | 无符号整数(从 0 到 65535) |
uint32 | 无符号整数(从 0 到 4294967295) |
uint64 | 无符号整数(从 0 到 18446744073709551615) |
float | float64 的简写 |
float16 | 半精度浮点,5 位指数,10 位尾数 |
float32 | 单精度浮点,8 位指数,23 位尾数 |
float64 | 双精度浮点,11 位指数,52 位尾数 |
complex | complex128 的简写 |
complex64 | 复数,由两个 32 位浮点表示 |
complex128 | 复数,由两个 64 位浮点表示 |
数组创建
- np.array(...) 传入序列型对象
- np.asarray(...) 传入序列型对象
- np.zeros(...) | np.ones(...) | np.empty(...) | np.full(...) 传入shape
- np.arange(...) 创建一维等差数组
- np.linspace(...) 创建一维等差数组
- np.fromfunction(...) 在每个坐标上执行一个函数构建多维数组
常用属性
- a.shape 表征数组每一维度的元素数量
- a.ndim 查看数组的维度
- a.size 查看元素个数
- a.dtype 描述数组的数据类型,一般默认为float64
- a.T 数组的转置
- a.I 数组的逆
类型转换
- a.astype(np.float64) 指定类型为np.float64
- a.astype(b.dtype) 使用另一个数组的dtype属性
时间日期
在 numpy 中,可以很方便的将字符串转换成时间日期类型 datetime64
。
datatime64
是带单位的日期时间类型,其单位如下:
日期单位 | 代码含义 | 时间单位 | 代码含义 |
---|---|---|---|
Y | 年 | h | 小时 |
M | 月 | m | 分钟 |
W | 周 | s | 秒 |
D | 天 | ms | 毫秒 |
- | - | us | 微秒 |
- | - | ns | 纳秒 |
- | - | ps | 皮秒 |
- | - | fs | 飞秒 |
- | - | as | 阿托秒 |
- np.datetime64(...) 传入日期
- np.arange(...) 创建datatime64数组,生成日期范围
代码实践
数组创建
import numpy as np
np.__version__
'1.19.1'
# np.array()
a = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
a
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
# np.asarray()
a = np.asarray([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
a
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
# np.zeros()
a = np.zeros((3, 5), dtype=np.float64)
# np.ones()
b = np.ones((3, 5), dtype=np.float64)
# np.full()
c = np.full((3, 5), fill_value = 6)
print('{}\n{}\n{}'.format(a, b, c))
[[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
[[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1.]]
[[6 6 6 6 6]
[6 6 6 6 6]
[6 6 6 6 6]]
# np.arange()
# 一维等差数组
a = np.arange(10)
print(a)
# 二维等差数组
b = np.arange(10).reshape(2,-1)
print(b, b.shape)
[0 1 2 3 4 5 6 7 8 9]
[[0 1 2 3 4]
[5 6 7 8 9]] (2, 5)
# np.linspace()
a = np.linspace(0, 10, 6)
print('在0~10之间生成6个等间隔点:\n',a)
在0~10之间生成6个等间隔点:
[ 0. 2. 4. 6. 8. 10.]
# np.fromfunction()
np.fromfunction(lambda i, j: i + j, (3, 3))
array([[0., 1., 2.],
[1., 2., 3.],
[2., 3., 4.]])
常用属性
# 生成 (0, 1) 之间的3行5列的随机浮点数
a = np.random.random((3,5))
print(a)
print(a.shape, a.ndim, a.size)
[[0.72025953 0.18960102 0.80835388 0.63235447 0.75891856]
[0.758877 0.24660297 0.36290307 0.08843709 0.69004692]
[0.69120701 0.05848793 0.42020173 0.73492385 0.91556042]]
(3, 5) 2 15
np.prod(a.shape) == a.size
True
网友评论