ndarray:多维数组对象
1.创建ndarray
创建数组最简单的方法是使用array 函数。它接受一切序列型的对象。
import numpy as np
data1 = [6,7.5,8,0,1]
arr1 = np.array(data1)
arr1
Out[4]: array([ 6. , 7.5, 8. , 0. , 1. ])
每一个数组都有一个 shape 和一个 dtype
arr1.shape
Out[5]: (5L,)
arr1.dtype
Out[6]: dtype('float64')
zeros 和函数 ones 创建指定 长度或形状的全0全1数组。empty创建没有任何具体值的数组
np.zeros(7)
Out[9]: array([ 0., 0., 0., 0., 0., 0., 0.])
np.ones((2,3))
Out[10]:
array([[ 1., 1., 1.],
[ 1., 1., 1.]])
np.empty((2,3))
Out[11]:
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
2.数据类型转换
astype
整数转为浮点数时,小数部分会被截断
arr = np.array([3.7,-1.2,-2.6,0.5])
arr
Out[14]: array([ 3.7, -1.2, -2.6, 0.5])
arr.astype(np.int32)
Out[15]: array([ 3, -1, -2, 0])
某字符串数组表示的全是数字也可以用astype转换
num_str = np.array(['1.25','-3.6','24'],dtype = np.string_)
num_str.astype(float)
Out[18]: array([ 1.25, -3.6 , 24. ])
3.数组和标量之间的运算
大小相等的数组间的任何算术运算都会将运算应用到元素级
4.索引和切片
索引:选取数组的子集或单个元素
下标从0开始,左闭右开
arr = np.arange(10)
arr
Out[20]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[5:8]
Out[21]: array([5, 6, 7])
arr[5:8]=12
arr
Out[23]: array([ 0, 1, 2, 3, 4, 12, 12, 12, 8, 9])
arr_slice = arr[5:8]
arr_slice[1]=123
arr
Out[26]: array([ 0, 1, 2, 3, 4, 12, 123, 12, 8, 9])
arr_slice[:]=64
arr
Out[28]: array([ 0, 1, 2, 3, 4, 64, 64, 64, 8, 9])
5.数组的转置和轴对换
计算矩阵内积
arr = np.random.randn(6,3)
np.dot(arr.T,arr)
Out[30]:
array([[ 8.46291352, -6.53225698, -0.56153338],
[-6.53225698, 9.06106344, 2.52970761],
[-0.56153338, 2.52970761, 5.57303457]])
6.通用函数
通用函数是一种对ndarray中的数据执行元素级运算的函数
square: 计算各元素的平方
sign:计算元素的正负号
ceil:大于等于该值的最小整数
floor:小于等于该值的最大整数
rint: 四舍五入,保留dtype
modf:将数组以小数部分和整数部分两个独立的数组形式返回