Python

Numpy入门


维度

一维数据

一组数据的有序序列

列表(有序)集合表示(无序{})

二维数据

多维数据

高维数据(利用基本的二元关系)

列表类型[[],[]]

高维数据

字典类型或数据表示格式(Json/XML/YAMO

Numpy库

  • ndarray数组对象
  • 广播功能函数
  • 整合C/C++/Fortran代码的工具
  • 线性代数,傅里叶变换,随机数生成等功能

ndarray数组对象

  • 好处
    可以向量化计算,而不使用循环,提高效率
  • ndarray多维数组对象
    实际的数组+描述这些数据的元数据(维度….
  • 引入
impore numpy as np
np.array()//生成一个数组
//输出成[]形式,元素由空格分隔
//轴(axis):保存数据的维度 秩(rank):轴的数量数组类型有多少个维度
  • 属性
    • .ndim
    • .shape
    • .size
    • .dtype
    • .itemsize

广播功能函数
整合C/C++/Fortran代码的工具
线性代数,傅里叶变换,随机数生成等功能

(二)ndarray数组的创建方法

1.用数组元组建立

x=np.array(list/tuple,dtype=np.float32)
//example
[IN]x=np.array([0,1,2,3])
[OUT][0,1,2,3]
[IN]x=np.array((0,1,2,3))
[OUT](0,1,2,3)
//混合类型创建
[IN]x=np.array([[0,1],(2,3)])
[OUT][0,1,2,3]

2.使用numpy函数

np.arrange(生成递增——int32
np.ones(shape)全1数组——默认浮点
np.zeros(shape)
np.full(shape,val)
np.eye(n)(生成n*n单位矩阵,对角线为1

np.ones_like(a)根据a的形状生成全1

3。使用其他函数创建ndarray
np.linspace()根据起止数据等间距地填充数据,形成数组
np.concatenate()

4.ndarray数组的维度变换
.reshape(shape)//不改变原数组
.resize(shape)//改变
.swapaxes(ax1,ax2)
new_a=a.astype(新类型)
.tolist向列表转变

数组操作

1.数组的索引与切片
索引:元素位置
切片:子集

  • 一维数组
    a[1:4:7](索引为1-3的子集中步长为2的数
    如[7,8,9,0,2,3]选取的是[8,0]

  • 多维数组
    a=np.arange(24).reshape((2,3,4))
    (索引)a[1,2,3]每个维度选取部分

array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],

   [[12, 13, 14, 15],
    [16, 17, 18, 19],
    [20, 21, 22, 23]]])

[OUT] a[1,2,3]
23

  • 切片
    a[:,1,-3]在第一个维度全覆盖,第二个维度选择1,第三个选择-3这些元素组成的子集
    a[:,1:3,:]每一个维度的切片方法与一维数组相同
    a[:,:,::2]可以使用步长跳跃切片

你可能感兴趣的:(Python)