NumPy基础 -- 1. ndarray (多维数组对象)
2017-03-23 17:31
411 查看
NumPy最重要的一个特点是其 N维数组对象 ndarray,该对象是一个快速而灵活的大数据集容器。
其中所有元素必须是相同类型的
每个数组都有一个shape(表示各维度大小的元组)和一个dtype(表明数组数据类型)
一.创建 nbarray
1.使用array函数,接受一切序列对象
2. 嵌套序列,也会被转换为一个多维数组
3. zeros和ones创建指定长度或形状全0或全1数组
4. 使用np内置函数arange
二. ndarray的数据类型
1. dtype, 默认是float64类型
2. 显式类型转换,astype()
三. 数组和标量之间的运算
四.基本的索引和切片
1.一组数组
2. 对于高维度数组
高维度索引,返回低一层级
切片索引
五. 布尔型索引
这个布尔型数组,可用于数组索引
布尔型数组的长度必须跟被索引的轴长度一致
除‘Bob’以外,即可以用(!=)也可以用负号(-)
六. 花式索引
利用整数数组进行索引
为了以特定顺序选取行子集,只需传入一个用于指定顺序的整数列表即可:
七. 数组转置和轴对换
1. T 属性
2. 计算矩阵内积,XX
其中所有元素必须是相同类型的
每个数组都有一个shape(表示各维度大小的元组)和一个dtype(表明数组数据类型)
一.创建 nbarray
1.使用array函数,接受一切序列对象
data1 = [6,7.5,8,0,1] arr1 = np.array(data1) print (arr1)
2. 嵌套序列,也会被转换为一个多维数组
data2 = [[1,2,3,4], [5,6,7,8]] arr2 = np.array(data2) print (arr2)
3. zeros和ones创建指定长度或形状全0或全1数组
z1 = np.zeros(10) print(z1)
4. 使用np内置函数arange
a1 = np.arange(15) print(a1)
二. ndarray的数据类型
1. dtype, 默认是float64类型
arr1 = np.array([1,2,3],dtype=np.int32) print(arr1.dtype)
2. 显式类型转换,astype()
arr = np.array([1,2,3,4,5]) print (arr.dtype) #整数转成浮点数 float_arr = arr.astype(np.float64) print (float_arr.dtype)
三. 数组和标量之间的运算
arr = np.array([[1,2,3],[4,5,6]]) arr * arr arr - arr 1 / arr arr ** 0.5
四.基本的索引和切片
1.一组数组
arr = np.arange(10) #索引 arr[5] #5 #切片 arr[5:8] #[5,6,7] #对切片赋值 arr[5:8]=12 #[0,1,2,3,4,12,12,12,8,9] 跟列表最重要的区别在于:数据不会被复制,直接反映的是源数组 #把一个切片赋值给一个变量,对这个变量改值,会影响到原始数据 arr_slice = arr[5:8] arr_slice[1] = 12345 print (arr) #[0,1,2,3,4,12,12345,12,8,9]
2. 对于高维度数组
高维度索引,返回低一层级
arr2d = np.array([[1,2,3],[4,5,6],[7,8,9]]) arr2d[2] #返回一个一维数据,array([7,8,9])表,返回单个元素 arr2d[0][2] #3 #这两种表示方式是一样的 arr2d[0,2] #3
切片索引
#一维对象 arr[1:6] #array([1,2,3,4,64]) #二维对象 arr2d #array([[1,2,3], [4,5,6], [7,8,9]]) #沿第0轴切片,也就是X轴 arr2d[:2] #array([[1,2,3], [4,5,6]]) #沿第X轴,Y轴切片 arr2d[:2, 1:] #array([[2,3], [5,6]])
五. 布尔型索引
names = np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe']) #正态分布的随机数据,7x4 data = randn(7,4) names == 'Bob' #将会产生一个布尔型数组: #array([True,False,False,True,False,FalseFalse])
这个布尔型数组,可用于数组索引
data[names == 'Bob']
布尔型数组的长度必须跟被索引的轴长度一致
除‘Bob’以外,即可以用(!=)也可以用负号(-)
data[-(names == 'Bob')] data[names != 'Bob']
六. 花式索引
利用整数数组进行索引
array([[0,0,0,0], [1,1,1,1], [2,2,2,2], [3,3,3,3], [4,4,4,4], [5,5,5,5], [6,6,6,6], [7,7,7,7]])
为了以特定顺序选取行子集,只需传入一个用于指定顺序的整数列表即可:
arr[[4,3,0,6]] #array([[4,4,4,4], [3,3,3,3], [0,0,0,0], [6,6,6,6]])
七. 数组转置和轴对换
1. T 属性
arr = np.arange(15).reshape(3,5) print(arr) print(arr.T)
2. 计算矩阵内积,XX
arr = np.random.randn(6,3) np.dot(arr.T, arr)
相关文章推荐
- Numpy——ndarray对象(2):数组存取和多维数组
- NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构
- Chapter4-1 NumPy的ndarray:一种多维数组对象
- numpy基础入门-多维数组对象
- np.newaxis 为 numpy.ndarray(多维数组)增加一个轴
- numpy基础——ndarray对象属性
- numpy数组 ndarray对象基本知识
- Python: NumPy中的多维数组ndarray
- np.newaxis 为 numpy.ndarray(多维数组)增加一个轴
- np.newaxis 为 numpy.ndarray(多维数组)增加一个轴
- NumPy-快速处理数据--ndarray对象--数组的创建和存取
- numpy.ndarray 交换多维数组(矩阵)的行/列
- nditer —— numpy.ndarray 多维数组的迭代
- np.newaxis 为 numpy.ndarray(多维数组)增加一个轴
- numpy.ndarray 交换多维数组(矩阵)的行/列方法
- 程序猿的机器学习之路-1-Numpy基础:创建多维数组
- numpy基础——ndarray对象方法
- Numpy——ndarray对象(1):创建数组
- np.newaxis 的作用为 numpy.ndarray(多维数组)增加一个轴
- numpy教程 - 基本数据类型、多维数组ndarray及其切片操作