Numpy|FancyPie

作者: 肖想 | 来源:发表于2018-03-18 13:07 被阅读0次
image

欢迎关注公众号【肖想】(ID:xiaoxiang9187)

Numpy是Python的一种开源的科学计算扩展库。Numpy提供的数据结构Array(数组)可用来存储和处理大型矩阵,比Python自身的数据结构(列表、元组和集合)结构要高效的多。Array的操作极其类似Matlab的矩阵运算。

Numpy库的使用重点:

  • Array的创建、选择和切片

  • Array的计算:集合、排序和分组

  • Array的描述统计

  • Array的储存和读取

Array的创建

首先,我们得先熟悉掌握得到Array数组的方法,才能往下了解其的功能和用法。大概有两种方法:一是直接生产Array数组,二是从其他python支持的数据结构转换为Array数组。

## Array的创建
# 直接生成
import numpy as np
a = np.arange(1, 10, 2) #生成一维数组
b = np.ones([5, 4]) #生成元素都为1的数组
c = np.ndarray([5, 4], dtype=np.float) #生成一个5*4的空数组
d = np.random.random([100, 1]) #生成随机数组
# 从其他数据结构转换
import numpy as np
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([[1, 2, 3, 4], ['a', 'b', 'c', 'd']])

常用的Array数组的属性:shape、size、ndim和dtype等。

# Array的常用属性
import numpy as np
arr = np.array([[1, 2, 3, 4], ['a', 'b', 'c', 'd']])
print(arr.shape) #数组的大小,返回一个元组
print(arr.size) #数组包含的元素的个数
print(arr.ndim) #数组的维数
print(arr.dtype) #array数组的数据类型

Array的选择和切片

Array数组之所以会成为科学计算最最常用的数据结构,原因就是其元素选择和切片极其的简便和强大。

首先元素的选择,和python内建的数据结构一样,用[]来引用,且也是从0开始编号。比如二维数组arr中,arr[0,0]表示第1行第1列的元素,arr[3,4]表示第4行第5列的元素。

其次数组的切片,即选择数组的某一部分(子集),也和其他其中结构一样,以冒号:表示。但是数组切片的时候还是有一些要注意的点,否则很容易出现错误。比如1:3表示第2至3行,:3表示第1至3行,1:5:2表示从1到4(不包含5)步长2。

## Array的选择和切片
import numpy as np
arr = np.random.random((5,6))
arr[1:3,2] #第2至3行,第3列
arr[:3,2] #第1至3行,第3列
arr[:,2] #第3列
arr[-1,:] #倒数第一行
arr[[1,3],1:3] #第2、4行,第2至3列
arr[1,1:5:2] #第2行,第2、4列
arr[arr>0] #选出大于0的元素

Array的计算

## Array的计算
import numpy as np
arr1 = np.ones([2,2])
arr2 = np.array([[-1,3],[2,-2]])
# 数学运算
arr1+arr2 #元素对应相加
arr1-arr2 #元素对应相减
arr1*arr2 #元素对应相乘
arr1/arr2 #元素对应相除
np.sqrt(arr1) #元素求平方根
# 矩阵运算
np.dot(arr1,arr2) #矩阵相乘
arr1.T #矩阵转置
arr2.reshape([1,4]) #变为1*4的数组,生成一个新数组
arr2.resize([1,4]) #变为1*4的数组,原数组上转换
# 矩阵合并
a = np.random.random((2,3))
b = np.array([(1,2,3),(3,2,1)])
h1 = np.vstack((a, b)) #按行合并
h2 = np.hstack((a, b)) #按列合并
h3 = np.column_stack((a, b))
# 集合运算
import numpy as np
arr1 = np.ones([2,2])*2
arr2 = np.array([[-1,3],[2,-2]])
np.unique(arr1) #唯一值
np.intersect1d(arr1,arr2) #交集
np.union1d(arr1,arr2) #并集
np.setdiff1d(arr1,arr2) #差集

Array的描述统计

## Array的描述统计
import numpy as np
arr = np.random.random((5,6))
arr.mean() #全部平均
arr.mean(axis=0) #按列平均
arr.mean(axis=1) #按行平均
arr.sum() #全部求和
arr.std() #全部求标准差
arr.cumsum() #按列累和
arr.cumprod() #按列累乘

Array的存储和读取

Array数据可以保存为excel或者txt文件,也可以保存为其自带的格式文件.npy或者.npz。

## Array的存储和读取
import numpy as np
arr1 = np.ones([2,2])*2
arr2 = np.array([[-1,3],[2,-2]])
# 储存
np.save('data1',arr1) #将1个array保存为.npy格式的文件
np.savez('data2',a=arr1,b=arr2) #将多个array保存为.npz格式的文件
# 读取
data1 = np.load('data1.npy')
data2 = np.load('data2.npz')
data2['a']
data2['b']

欢迎关注公众号【肖想】(ID:xiaoxiang9187)

相关文章

  • Numpy|FancyPie

    欢迎关注公众号【肖想】(ID:xiaoxiang9187) Numpy是Python的一种开源的科学计算扩展库。N...

  • 科学计算库numpy的执行示例

    numpy1 numpy2 numpy3 numpy4

  • numpy中的常量

    Constants 正无穷 numpy.inf numpy.Inf numpy.Infinity numpy.in...

  • NumPy学习资料

    Numpy 中文资料 NumPy 中文文档 NumPy 中文用户指南 NumPy 中文参考手册

  • Numpy基础

    安装Numpy Numpy Numpy属性 ndim:纬度 shape:行数和列数 size:元素个数 Numpy...

  • Numpy和Pandas基本操作速查

    """ numpy 基本操作 """'''安装 Numpy 的方法:pip install numpy''''''...

  • numpy 基础

    numpy 基础 导入numpy 版本 np常用方法 numpy.array 的基本属性 numpy.array ...

  • Numpy入门

    1、熟悉 numpy 的基础属性 2、numpy 创建 array 3、numpy的基础运算 4、numpy索引 ...

  • 学习:biopython的安装

    安装Numpy 因为使用biopython需要numpy的支持,所以需要先安装numpy。安装numpy过程如下:...

  • Numpy

    Numpy中文文档 # 基本语法 ``` import numpy myText = numpy.genfromt...

网友评论

    本文标题:Numpy|FancyPie

    本文链接:https://www.haomeiwen.com/subject/ewseqftx.html