Numpy 入门 一

参考来源:点击打开链接

本文主要分为以下几个部分:

  1. Numpy--简介 (Introduction)
  2. Numpy--Ndarray对象 (Ndarray object)
  3. Numpy--数据类型 (Data types)
  4. Numpy--数组属性 (Array attributes)
  5. Numpy--数组创建例程 (Array creation routines)
  6. Numpy--从现有数据创建数组 (Array from existing data)

一. Numpy --- 简介

Numpy--Numerical Python,是一个基于Python的可以存储和处理大型矩阵的库。几乎是Python 生态系统的数值计算的基石,例如Scipy,Pandas,Scikit-learn,Keras等都基于Numpy。使用Numpy, 可以进行:

  • 数组和逻辑运算
  • 傅里叶变换和图形操作实例
  • 线性代数相关的运算操作

NumpyMat-plotlib(基于Python的绘图库)和Scipy(包括统计, 优化,整合和线性代数等模块)的结合使用。由于基于Python并开源,因而可以替代Matlab,成为一种更加完整的体系。

This combination is widely used as a replacement for MatLab, a popular platform for technical computing.

二. Ndarray对象

Ndarray (N-dimensional array type) N维数组模型,是可以通过索引访问的包含相同元素集合。ndarray本质是数组,不同之处在于它支持数组里面嵌套数组,这也就是N-dimensional的来源。这个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快节省空间的特点。

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
  • 参数以及介绍

object: Any object exposing the array interface method returns an array, or any (nested) sequence.

dtype: 描述数组元素的类型

copy: 默认值为(True) ,对象被复制

order: C(行),F(列),A(Any)(default)

subok: 默认情况下,强制类型转换为基类数组

ndmin: 返回指定数组的最小维数

import numpy as np

a1 = np.array([1, 2, 3, 4])
a2 = np.array([[1, 2], [3, 4]])
a3 = np.array([1, 2, 3, 4, 5], ndmin=2)
a4 = np.array([1, 2, 3], dtype=complex)
print(a1)
print(a2)
print(a3)
print(a4)

输出结果:


常用ndarray方法

  • reshape(…) 返回一个给定shape的数组的副本
  • resize(…) 返回给定shape的数组,原数组shape发生改变
  • flatten()/ravel() 返回展平数组,原数组不改变
  • astype(dtype) 返回指定元素类型的数组副本
  • fill() 将数组元素全部设定为一个标量值
  • sum/Prod() 计算所有数组元素的和/积
  • mean()/var()/std() 返回数组元素的均值/方差/标准差
  • max()/min()/ptp()/median() 返回数组元素的最大值/最小值/取值范围/中位数
  • argmax()/argmin() 返回最大值/最小值的索引
  • sort() 对数组进行排序,axis指定排序的轴;kind指定排序算法,默认是快速排序
  • view()/copy() view创造一个新的数组对象指向同一数据;copy是深复制
  • tolist() 将数组完全转为列表,注意与直接使用list(array)的区别
  • compress() 返回满足条件的元素构成的数组

三: 数据类型

有五种基本的数据类型

  • bool 布尔
  • int 整形(int, intc, intp, int8, int16, int32, int64)
  • uint 无符号整形(uint8, uint16, uint32, uint64)
  • float 浮点型(float, float16, float32, float64)
  • complex复数(complex, ocmplex64, complex128)

NumPy数值类型是dtype对象的实例,可由如下方法构造:

numpy.dtype(object, align, copy)
import numpy as np

a1 = np.array([1, 2, 3, 4],dtype=np.int)
a2 = np.array([[1, 2], [3, 4]],dtype=np.float)
a3 = np.array([1, 2, 3, 4, 5], dtype=np.complex)
print(a1)
print(a2)
print(a3)

运行结果:


数据类型转换:

a1 = np.array([1, 2, 3, 4])
a2=np.array(a1,np.float32)
print(a1.dtype)
print(a2.dtype)

运行结果:


Each built-in data type has a character code that uniquely identifies it.

  • 'b' − boolean
  • 'i' − (signed) integer
  • 'u' − unsigned integer
  • 'f' − floating-point
  • 'c' − complex-floating point
  • 'm' − timedelta
  • 'M' − datetime
  • 'O' − (Python) objects
  • 'S', 'a' − (byte-)string
  • 'U' − Unicode
  • 'V' − raw data (void)

四:数组属性

常用ndarray属性:

  • dtype 数组元素的类型
  • shape 数组形状
  • ndim 数组的维度
  • size 数组中元素的个数
  • itemsize 数组元素所占字节数
  • T 数组的转置
  • flat 返回一个数组的迭代器,对flat赋值将导致整个数组的元素被覆盖
  • real/imag 复数数组的实部/虚部
  • nbytes 数组占用的存储空间
a1 = np.array([[1, 2, 3],[4,5,6]])
print(a1.shape)
a1.shape=(3,2)
print(a1)
b1 = np.arange(24)
print("b1.ndim = ",b1.ndim)
print('b1.reshape(2,4,3) = ',b1.reshape(2,4,3))

运行结果:


五:数组创建例程(Array creation routines)

创建一个新的ndarray对象:

A new ndarray object can be constructed by any of the following array creation routines or using a low-level ndarray constructor.

代码及注释如下所示:

a1=np.empty([2,3])
a2=np.zeros([2,3])
a3=np.ones([2,3],dtype=np.complex)
print(a1)
print(a2)
print(a3)

运行结果:


六:从现有数据创建数组(Array from existing data)

这一部分, 我将介绍如何使用现有的数据来创建数组。

代码及注释如下所示:

a1 = np.asarray([1, 2, 3], dtype=float)
print('a1 = ', a1)
a2 = np.asarray([(5, 2, 0), (8, 9)])
print('a2 = ', a2)
print('a3 = ', range(5))
a4 = np.fromiter(iter(range(5)), dtype=float)
print('a4 = ', a4)

运行结果:


以上就是入门一的全部内容了,不足请多多指教。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值