NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以帮助程序员轻松地进行数值计算。这类数值计算广泛用于以下任务:
从ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示。 下图显示了ndarray,数据类型对象(dtype)和数组标量类型之间的关系。它从任何暴露数组接口的对象,或从返回数组的任何方法创建一个ndarray。
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
比如:我要针对一个数组的元素都乘以2,有2种做法
# 方法一
num_list=[1,2,3,4,5,6]
ret_list = []
for num in num_list:
ret_list.append(num*2)
print(ret_list)
print("-----------------")
# 方案二
np_array = np.array(num_list)
print(np_array*2)
# 创建ndarray数据
import numpy as np
# 一维数组
a = np.array([1,2,3])
a_ = np.array((1,2,3))
# 二维数组
b = np.array([[1, 2],
[3, 4]])
# 三维数组
c = np.array([[[1, 2],
[3, 4]],
[[1, 2],
[3, 4]]])
print(a)
print("-----------------")
print(a_)
print("-----------------")
print(b)
print("-----------------")
print(c)
print(a.shape)
print("-----------------")
print(b.shape)
print("-----------------")
print(c.shape)
NumPy 支持比 Python 更多种类的数值类型。 下表显示了 NumPy 中定义的不同标量数据类型。
NumPy 数字类型是dtype(数据类型)对象的实例,每个对象具有唯一的特征
dtype可由一下语法构造:
numpy.dtype(object, align, copy)
参数为:
# 使用数组标量类型
# #int8,int16,int32,int64 可替换为等价的字符串 'i1','i2','i4',以及其他。
import numpy as np
dt = np.dtype(np.int32)
dt_ = np.dtype('i4')
print(dt)
print("----------------")
print(dt_)
# 创建结构化数据类型
dt = np.dtype([('age',np.int8)])
a = np.array([(10,),(20,),(30,)], dtype = dt)
print(dt)
print(a['age'])
常用的常量如下:
# 无穷大
# inf
print(np.inf)
# 它是一个浮点型
print(type(np.inf))
# float
a = np.array([np.inf, -np.inf, 1])
# 显示哪些元素是正无穷大或负无穷大
np.isinf(a) # array([ True, True, False])
#自然数 e
print(type(np.e))
# float
print(np.e)
# 2.718281828459045
#圆周率
print(type(np.pi))
# float
print(np.pi)
# 3.141592653589793
5.5、广播(重要)
广播(Array Broadcasting):描述的是 NumPy 如何计算不同形状的数组之间的运算。如果是较大的矩阵和较小的矩阵进行运算的话,较小的矩阵就会被广播,从而保证运算的正确进行。
如果满足以下规则,可以进行广播:
a = np.array([[0.0,0.0,0.0],[10.0,10.0,10.0],[20.0,20.0,20.0],[30.0,30.0,30.0]])
print ('a shape:')
print(a.shape)
b = np.array([1.0,2.0,3.0])
print ('b shape:')
print(b.shape)
print ('第一个数组:')
print(a)
print ('\n')
print ('第二个数组:')
print(b)
print ('\n')
print ('\n')
print ('第一个数组加第二个数组:')
print(a + b)
print ('\n')
图片展示了数组b如何通过广播来与数组a兼容:
阅读量:2017
点赞量:0
收藏量:0