时间:2022-09-17 10:30:26 | 栏目:Python代码 | 点击:次
numpy
是一个开源的python
科学计算扩展库,主要用来处理任意维度数组和矩阵。
相同的任务,使用numpy
比直接用python
的基本数据结构更加简单高效。
它的功能:
Ndarray
numpy
是scipy
,pandas
等数据处理或科学计算库的基础
虽说别名可以省略或者更改,但尽量使用上述约定的别名
n维数组,它是一个相同数据类型的集合,以0为下标开始进行集合中元素的索引。
我们知道,python
有列表和数组此类的数据结构。
列表:数据类型可以不同(如[3, 2.4 ,‘a’ ,“abc”]),数据是有序的
数组:数据类型相同(如[1,2,3,4])
集合: (如{2,4,3,5,7})数据是无序的
观察下列两组操作,其功能都是一样的。
import numpy as np def pysum(): a = [1, 2, 3, 4] b = [5, 6, 7, 8] c = [] for i in range(len(a)): c.append(a[i]**2+b[i]**3) return c def numpysum(): a = np.array([1, 2, 3, 4]) b = np.array([5, 6, 7, 8]) c = a**2+b**3 return c print("使用列表运算的结果是:", pysum()) print("使用Numpy运算的结果是:", numpysum())
运行结果:
使用列表运算的结果是: [126, 220, 352, 528]
使用Numpy运算的结果是: [126 220 352 528]
但是很明显:
numpy
的数组对象可以去掉元素建运算所需要的循环,使一维向量更像单个数据numpy
通过设立专门的数组对象,经过优化,运算速度也相应提升通常情况下,在科学运算中,一个维度所有数据的类型往往相同,这时,使用数组对象采用相同的数据类型,有助于节省运算时间和存储空间
当np.array()
不指定dtype
时,numpy
将根据数据情况关联一个dtype
类型
ndarray
支持多种数据类型的原因python
基本语法只支持整数、浮点数和复数3种类型numpy
合理使用存储空间并优化性能import numpy as np x = np.array([[1, 0], [2, 0], [3, 1]], np.int32) print(x) print(x.dtype)
程序输出:
[[1 0]
[2 0]
[3 1]]
int32
(好家伙,numpy
内置函数太多了…)