设为首页 加入收藏

TOP

我的Python分析成长之路8(二)
2019-01-16 14:08:43 】 浏览:255
Tags:Python 分析 成长
9] 获得
6 x = arr1[1:3].copy() #如果不想要获得是一份视图的话,就用显示的复制这个数组 .copy() 7 print(arr1)

    2.多维数组的索引

     多维数组的每一个维度都有一个索引,各个维度的索引之间用逗号隔开,或分两个括号

1 arr= np.arange(9).reshape(3,3)
2 print(arr[0][2])    #2
3 print(arr[0,2])     #2 这两种方式访问等价
4 print(arr[1:,1:]) #第二、三行,第二、三列
5 print(arr[:2,2])  #前两行,第三列
6 arr2 = np.array([[[1,2,3],[4,5,6]],[7,8,9],[10,11,12]])
7 print(arr2[0])   #[[1, 2, 3], [4, 5, 6]]
8 print(arr2[0][0]) #[1, 2, 3]

    3.布尔索引 

1 names = np.array(["A","B","C","D","E","F"])
2 data = np.random.randn(6,4)
3 print(names=="B")   #[False  True False False False False]
4 print(data[names=='B'])   #在索引数组中引入布尔数组  选择names=="B"的行
5 print(data[names=='B',2:])     #names ="B" 的后两列

6.改变数组的形态

  在对数组进行操作时,经常需要改变数组的维度。在Numpy中,常用reshape函数改变数组的“形状”,也就是改变数组的维度。参数为一个正整数元组,分别指定数组在每个维度上的大小,reshape函数在改变原始数据形状的同时不改变原始数据。如果指定的数据和数组的元素不吻合,则函数将抛出异常。

  使用ravel()、flatten()完成展开工作,使用hstack()、vstack() 、concatenate完成组合操作,使用hsplit、vsplit、dsplit、split完成分割操作,可以将数组分割成相同大小的子数组,也可以指定原数组中需要分割的位置。

  

 1 arr = np.arange(12)
 2 print("创建一维数组:",arr)
 3 print("新的数组:",arr.reshape(3,4))   #返回(3,4)的数组
 4 print("数组的维度:",arr.ndim)   #查看数组的维度 2
 5 arr2 = np.arange(12).reshape(3,4)
 6 print("创建的二维数组:",arr2)
 7 print("使用ravel展平:",arr2.ravel())  #获得一维数组[ 0  1  2  3  4  5  6  7  8  9 10 11]
 8 print("使用flatten横向展开:",arr2.flatten())   #横向展开 [ 0  1  2  3  4  5  6  7  8  9 10 11]
 9 print("使用flatten纵向展开:",arr2.flatten("F"))  #纵向展开,[ 0  4  8  1  5  9  2  6 10  3  7 11]
10 arr3 = arr2 *3
11 print("使用hstack完成横向组合:",np.hstack((arr2,arr3)))  #横向组合
12 print("使用vstack完成纵向组合:",np.vstack((arr2,arr3)))  #纵向组合
13 print("使用concatenate完成纵向组合操作",np.concatenate((arr2,arr3),axis=0))   #沿着纵向组合
14 print("使用concatenate完成横向组合操作",np.concatenate((arr2,arr3),axis=1))  #沿着横向组合
15 print("横向分割:",np.hsplit(arr2,2))   #使用hsplit完成横向分割
16 arr4 = np.arange(16).reshape(4,4)
17 print("纵向分割:",np.vsplit(arr4,2))  #使用vstack完成纵向分割  必须保证分割后相同大小
18 print("横向分割:",np.split(arr4,axis=1))  #完成横向分割
19 print("纵向分割:",np.split(arr4,axis=0))  #完成纵向分割

7.创建numpy矩阵

    在Numpy中,矩阵是ndarray的子类,在Numpy中,数组和矩阵有着重要的区别.Numpy中提供了两个基本的对象:一个N维数组对象和一个通用函数对象。其他对象在它们之上构建的。矩阵是继承自Numpy数组对象的二维数组对象。矩阵也是二维的

    使用mat、matrix、bmat函数构建矩阵和矩阵的操作

 mat1 = np.mat("1 2 3;2 3 4;3 4 5")
print("使用mat创建的矩阵:",mat1)
mat2 = np.matrix([[1,2,3],[2,3,4],[3,4,5]])
print("使用matrix创建的矩阵:",mat2)
mat3 = np.bmat("mat1;mat2")
print("使用bmat创建的矩阵:",mat3)
mat4 = mat1*3
print("矩阵与数相乘:",mat4)
mat5 = mat1+mat2
print("矩阵相加结果:",mat5)
mat6 = mat2 - mat1
print("矩阵相减结果:",mat6)
mat7 = mat1 * mat2 #等价于mat1@mat2
print("矩阵与矩阵相乘:",mat7) #相当于求内积
mat8 = np.multiply(mat1,mat2)
print("矩阵对应元素相乘:",mat8)
print("矩阵的转置:",mat1.T) #相当于mat1.T
print("矩阵的共轭转置:",mat1.H)
print("矩阵的逆矩阵:",mat1.I)
print("矩阵的一个视图:",mat1.A)

8.ufunc函数

    ufunc函数全称为通用函数,是一种能够对数组中的所有元素(逐元素)进行操作的函数。ufunc是针对数组进行操作的,并且都以Numpy数组作为输出,因为不需要对数组中的每个元素进行操作。

    一元通用函数:

          add、fabs 逐元素计算整数、浮点数或复数的绝对值

          sqrt:计算每个元素的平方根

          square:计算每个元素的平方

          exp:计算每个元素的自然指数值

          log

首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python面向对象:杂七杂八的知识点 下一篇cmd中执行Python命令时>>&g..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目