2.2创建Numpy数组
创建ndarray对象的方式:使用array()函数,在调用该函数时会传入一个python现有的类型即可,比如列表、元组。通过zeros()函数创建元素为全零数组。通过调用ones()函数创建元素为全一数组。通过empty()函数创建一个新的数组,新数组的值为随机数组,其根据内存原有存储数据。通过arange()函数可以创建任意的数组,它的功能类似于range(),np.arange(),这个括号里最终生成的结果数值范围是左闭右开的区间。
2.3.2转换数据类型
nd.array对象的数据类型可以通过astype()进行转换。例如:
data = np.array([[1,2,3],【4,5,6]】)
date.dtype
输出结果为dtype(‘int64’)
float_data = data.astype(np.float64)
float_data.dtype
输出结果为dtype(‘float64’)
2.4数组运算
2.4.1矢量化运算
在Numpy中,大小相等的数组之间的任何算术运算都会应用到元素级,即只用于位置相同的元素之间,所得的运算结果组成一个新的数组。
arr1(1,4) 0 1 2 3
+
arr2(2, 4) 1 2 3 4
=
result(4, ) 1 3 5 7
2.4.2数组广播
数组在进行矢量化运算时,要求数组的形状相等的。当形状不相等的数组执行算术运算的时候,就会出现广播机制,该机制会对数组进行扩展,使数组的shape属性值一样。
arr1(4,1) arr2(3,1) 最后得到的为4行3列
0 0 0 1 2 3 1 2 3
1 1 1 1 2 3 2 3 4
2 2 2 1 2 3 3 4 5
3 3 3 1 2 3 4 5 6
左边的一行与右边的第一列各自相乘积之和为新的第一列的第一个元素,以此类推。
注意:广播机制实现了对两个或两个以上的数组运算,虽然这些数组的shape不是完全相同,但只用满足以下条件之一就行:
数组的某一维度等长。
其中一个数组的某一维度为一。
2.4.3数组与标量间的运算大小相等的数组之间的任何算术运算都会将运算应用到元素级,同样,数组与标量的算术运算也会将那个标量值传播到各个元素。当数组进行加减乘除时,原始矩阵的每个元素都会被相加相减相乘相除,标量运算会产生一个与数组具有相同数量的列和行的矩阵。