numpy库简介
- 开源的Python库,它提供了高性能的多维数值计算能力;
- 由“Numerical Python”缩写而来,并且它是Pandas库的基础;
- NumPy提供了许多有用的功能,例如数组操作、矩阵运算、傅里叶变换等;
- 支持向量化编程,这使得它比传统的循环和条件语句更加高效;
- NumPy完全基于C语言实现,并且已经经过了充分的优化,因此它的运行速度非常快。
numpy操作
import numpy as np
数组创建
list = [1,2,3,4,5]
array = np.array(list)
print(array)
print(type(array))
>[1 2 3 4 5]
><class 'numpy.ndarray'>
list = [[1,2],[3,4],[5,6]]
array = np.array(list)
print(array)
>[[1 2]
[3 4]
[5 6]]
- np.arange(开始值,结束值,步长)
array = np.arange(1,10,2)
print(array)
>[1 3 5 7 9]
- np.zeros(shape, dtype=float, order='C'):创建一个元素全为0的数组
- np.ones(shape, dtype=None, order='C'):创建一个元素全为1的数组
- np.empty(shape, dtype=float, order='C'):创建一个未初始化的数组,元素随机
- np.full(shape, fill_value, dtype=None, order='C'):创建一个具有给定形状和填充值的数组
- shape: 数组的性转
- dtype: 数组元素数据类型
- order:内存布局顺序,C-按行,F-按列
array = np.empty((2,4), dtype=np.int8)
print(array)
>[[ 96 -39 -22 70]
[ 24 86 0 0]]
import numpy as np
rand_array = np.random.rand(2, 3)
print("均匀分布的随机数组:\n", rand_array)
randn_array = np.random.randn(2, 3)
print("标准正态分布的随机数组:\n", randn_array)
randint_array = np.random.randint(1, 10, size=(2, 3))
print("指定范围的随机整数数组:\n", randint_array)
random_array = np.random.random((2, 3))
print("均匀分布的随机数组:\n", random_array)
>均匀分布的随机数组:
[[0.49018606 0.05014734 0.38739906]
[0.09357898 0.98583039 0.6992634 ]]
>标准正态分布的随机数组:
[[ 1.44017508 0.55562128 -0.11157242]
[ 0.80112095 1.58158805 0.81131876]]
>指定范围的随机整数数组:
[[7 6 9]
[5 2 6]]
>均匀分布的随机数组:
[[0.35562269 0.29418661 0.49925419]
[0.76548519 0.70753405 0.02305559]]
数组属性
array = np.array([[1, 2, 3], [4, 5, 6]])
print("第一个元素:", array[0, 0])
print("最后一个元素:", array[-1, -1])
print("第一行:", array[0, :])
print("第二列:",array[:, 1])
>第一个元素: 1
>最后一个元素: 6
>第一行: [1 2 3]
>第二列: [2 5]
array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.shape)
>(2, 3)
array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.ndim)
print(array.size)
> 2
> 6
array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.dtype)
> int64
数组变更
array = np.array([[1, 2, 3], [4, 5, 6]])
array = np.reshape(array, (3, 2))
print(array)
>[[1 2]
[3 4]
[5 6]]
array = np.array([[1, 2, 3], [4, 5, 6]])
array = array.astype(float)
print(array.dtype)
>float64
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sub_array = array[0:2, 1:3]
print(sub_array)
>[[2 3]
[5 6]]
my_array = np.array([[1, 2, 3], [4, 5, 6]])
transposed_array = np.transpose(my_array)
print(transposed_array)
>[[1 4]
[2 5]
[3 6]]