第二章 科学计算库Numpy

NumPy中最重要的一个特点就是其N维数组对象,即ndarray(别名array)对象,该对象可以执行一些科学计算。

创建最简单的nbarray对象的方法是array()函数,而在调用函数的时候需要传入一个列表或元组。

例如:*创建一维数组

data1 = np.array([1,2,3])

*创建一个二维数组

data2 = np.array([[1,2,3],[4,5,6]])

通过zeros()函数创建元素值都是0的数ones()函数创建元素值都为1的数组

例如:* 创建元素值全是0的数组

np.zeros((3, 4))

创建元素值全是1的数组

np.ones((3, 4))

通过empty()函数创建一个新的数组,该数组只分配内存空间,而里面填充的元素都是随机的。

例如:*创建元素值全是随机数的数组

np.empty((5, 2))

通过arange()函数可以创建一个等差数组,它的功能类似于range(),只不过arange()函数返回的结果是数组,而不是列表。

ndarray.dtype以创建一个表示数据类型的对,如果取数据类型的名称,则需要访问name属性进行获

如data_one = np.array([[1, 2, 3], [4, 5, 6]])

data_one.dtype.name 

通过zeros()ones()empty()函数创建的数,默认的据类型为float64。默认情况下,64windows系统输出的结果为int3264LinuxmacOS系统输出结果为int64,当然也可以通过dtype来指定数据类型的长度

ndarray对象的数据类型可以通过astype()方法进行转

例如:data = np.array([[1, 2, 3], [4, 5, 6]])

data.dtype

*数据类型转换为float64

float_data = data.astype(np.float64)

float_data.dtype

 

 形状等的数组之间的任何算术运算都会应用到元素级,即只用于位置相同的元素之间,所得的运算结果组成一个新的数组。

一维数组来说,从表面上来看,使用索引和切片的方式,与Python列表的功能相差不大

如:arr = np.arange(8)

获取索引为5的元素

arr[5]

获取索引为3~5的元素,但不包括5

arr[3:5]

在二维数组中,每个索引位置上的元素不再是一个标量了,而是一个一维数组。如果想获取二维数组的单个元素要通过形如“arr[xy]”的索引来实其中x表示行号,y表示列号。

 NumPywhere()函数是三元表达式x if condition else y的矢量化版本。

如:arr_x = np.array([1, 5, 7])

arr_y = np.array([2, 6, 8])

arr_con = np.array([True, False, True])

result = np.where(arr_con, arr_x, arr_y)

 

如果希望对NumPy数组中的元素进行排序,可以通过sort()方法实

如:arr = np.array([[6, 2, 7],

                         [3, 6, 2],

                         [4, 3, 2]])

arr.sort()

all()函数用于判断整个数组中的元素的值是否全部满足条件,如果满足条件返回True,否则返回False。any()函数用于判断整个数组中的元素至少有一个满足条件就返回True,否则就返回False

 

Pythonrandom模块相比,NumPyrandom模块功能更多,它增加了一些可以高效生成多种概率分布的样本值的函数。

如: 随机生成一个二维数组

np.random.rand(3, 3)

seed( )函数可以保证生成的随机数具有可预测性,也就是说产生的随机数相

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值