NumPy快速上手

此为实验楼楼+机器学习前置课程NumPy 数值计算基础课程的初步总结,这篇教程就是一个api文档,看的头太疼了,就好比你初学Linux,然后人家给你一个指令手册叫你从头看到底。

这里就简单记录了一些数组的用法,其他的用到的时候直接去查就行了

类型

所有类型

类型 解释
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 位浮点表示。

设定类型

1
2
3
4
5
6
import numpy as np

a = np.array([1.1, 2.2, 3.3], dtype=np.float64) # 此处可以指定类型
a, a.dtype

# (array([1.1, 2.2, 3.3]), dtype('float64'))

改变类型

1
a.astype(int)

数组

array

普通的数组

1
2
3
np.array([[1, 2, 3], [4, 5, 6]])
# array([[1, 2, 3],
# [4, 5, 6]])

arange

生成指定范围的数组

numpy.arange(start, stop, step, dtype=None)

1
2
np.arange(3, 7, 0.5, dtype='float64')
# array([3. , 3.5, 4. , 4.5, 5. , 5.5, 6. , 6.5])

linspace

用于在指定的区间内返回间隔均匀的值

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

1
2
3
4
5
np.linspace(start=0, stop=10, num=20, endpoint=True)
# array([ 0. , 0.52631579, 1.05263158, 1.57894737, 2.10526316,
# 2.63157895, 3.15789474, 3.68421053, 4.21052632, 4.73684211,
# 5.26315789, 5.78947368, 6.31578947, 6.84210526, 7.36842105,
# 7.89473684, 8.42105263, 8.94736842, 9.47368421, 10. ])

ones

用于快速创建数值全部的1多维数组

numpy.ones(shape, dtype=None, order='C')

1
2
3
np.ones(shape=(2,3))
# array([[1., 1., 1.],
# [1., 1., 1.]])

zeros

用于快速创建数值全部为0的多维数组

numpy.zeros(shape, dtype=None, order='C')

1
2
np.zeros(3)
# array([0., 0., 0.])

eye

二维数组,k对角线上的值为1,其余为0

numpy.eye(N, M=None, k=0, dtype=<type 'float'>)

1
2
3
4
5
6
np.eye(5, 4, 1)
# array([[0., 1., 0., 0.],
# [0., 0., 1., 0.],
# [0., 0., 0., 1.],
# [0., 0., 0., 0.],
# [0., 0., 0., 0.]])

从已知数据创建

  • frombuffer(buffer):将缓冲区转换为 1 维数组。
  • fromfile(file,dtype,count,sep):从文本或二进制文件中构建多维数组。
  • fromfunction(function,shape):通过函数返回值来创建多维数组。
  • fromiter(iterable,dtype,count):从可迭代对象创建 1 维数组。
  • fromstring(string,dtype,count,sep):从字符串中创建 1 维数组。
1
2
3
4
5
np.fromfunction(lambda a, b : a * b, (4,3))
# array([[0., 0., 0.],
# [0., 1., 2.],
# [0., 2., 4.],
# [0., 3., 6.]])

ndarray

参数:

  • shape:数组的形状。
  • dtype:数据类型。
  • buffer:对象暴露缓冲区接口。
  • offset:数组数据的偏移量。
  • strides:数据步长。
  • order{'C','F'},以行或列为主排列顺序。

随机数组

numpy.random.rand(d0, d1, ..., dn) 方法的作用为:指定一个数组,并使用 [0, 1) 区间随机数据填充,这些数据均匀分布。

numpy.random.randn(d0, d1, ..., dn)numpy.random.rand(d0, d1, ..., dn) 的区别在于,前者是从标准正态分布中返回一个或多个样本值。

randint(low, high, size, dtype) 方法将会生成 [low, high) 的随机整数。注意这是一个半开半闭区间。

random_sample(size) 方法将会在 [0, 1) 区间内生成指定 size 的随机浮点数。

choice(a, size, replace, p) 方法将会给定的数组里随机抽取几个值,该方法类似于随机抽样。


啊,我不行了,api看的头疼