我是靠谱客的博主 粗心金毛,这篇文章主要介绍Python学习笔记(4) NumPy数值计算基础11 NumPy 数组对象 ndarray2 NumPy 矩阵与通用函数练习:生成数组并执行简单操作,现在分享给大家,希望可以做个参考。

1 NumPy 数组对象 ndarray

1.1 创建数组

1.1.1 array函数

复制代码
1
2
import numpy as np arr1 = np.array([1, 2, 3, 4])

1.1.2 linspace函数

np.linspace(start,stop,num):创建的为等差数列

1.1.3 logspace函数

np.logspace(start,stop,num):创建的为等比数列

1.1.4 其他

np.zero((a, b)):创建值全部为0的数组

np.eye(a):用来生成主对角线上的元素为1,其余的元素为0的数组,类似单位矩阵

np.diag([1, 2, 3, 4]):创建类似对角的数组,即除对角线以外的其他元素都为0,对角线上元素可以是0或其他值。

np.ones((5, 3)):创建元素全部为1的数组

np.arange(0,1,0.1)):通过指定开始值、终值和步长来创建一维数组,创建的数组不含终值。

1.2 数组基本属性

数组维数:arr1.ndim

数组形状:arr1.shape

洋葱剥离法(点击跳转):洋葱剥离法

数组元素个数:arr1.size

数组类型:arr1.dtype

数组每个元素大小:arr1.itemsize

1.3 调整数组大小(shape和reshape)

arr1.shape = (4, 3)

arr2 = arr1.reshapr(4, 3)

1.4 生成随机数

1.4.1 无约束条件下

np.random.random(size=None) #生成随机浮点数,浮点数范围 : (0,1)

1.4.2 服从随机分布

np.random.rand (size=None) #生成随机浮点数,浮点数范围 : [0,1)

1.4.3 服从正态分布

np.random.randn(10, 5)   #生成10行 5列

1.4.4 给定上下范围

numpy.random.randint(low, high=None, size=None, dtype=’l’)

返回随机整数,范围区间为[low,high),包含low,不包含high

参数:

low为最小值,high为最大值,size为数组维度大小shape,dtype为数据类型,默认的数据类型是np.int

high没有填写时,默认生成随机数的范围是[0,low)

举例:numpy.random.randint(2, high=10, size=[2,5])

1.4.5 其他常用函数

函数

说明

seed

确定随机数生成器的种子。

permutation

返回一个序列的随机排列或返回一个随机排列的范围。

shuffle

对一个序列进行随机排序。

binomial

产生二项分布的随机数。

normal

产生正态(高斯)分布的随机数。

beta

产生beta分布的随机数。

chisquare

产生卡方分布的随机数。

gamma

产生gamma分布的随机数。

uniform

产生在[0,1)中均匀分布的随机数。

1.5 索引和修改

同列表,多用切片实现。

1.6 变换形式

arr1.shape = (4, 3)

arr2 = arr1.reshapr(4, 3)

arr.ravel():横向展平

arr.flatten():横向展平

arr.flatten('F'):纵向展平

1.7 组合操作

1.7.1 横向

np.hstack((arr1,arr2))

np.concatenate((arr1,arr2),axis = 1))

1.7.2 纵向

np.vstack((arr1,arr2))

np.concatenate((arr1,arr2),axis = 0)) 

1.7.3 insert函数 新增行和列

np.insert(arr, 位置, 插入值, axis=0 行  1 列)

1.8 分割操作

arr.split(","):以,为列表/数组的分割依据

1.8.1 横向

np.hsplit((arr1, 2))

np.split((arr1, 2),axis = 1))

1.7.2 纵向

np.vsplit((arr1, 2))

np.split((arr1, 2),axis = 0)) 

2 NumPy 矩阵与通用函数

2.1 创建numpy矩阵

2.1.1 mat函数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import numpy as np matr1 = np.mat("1 2 3;4 5 6;7 8 9") print('创建的矩阵为1:n',matr1) matr2= np.mat([1,2,3]) print('创建的矩阵为2:n',matr2) matr3=np.mat([[2,5,1],[4,6,2]]) print('创建的矩阵为3:n',matr3) list=[1,2,3] matr4=np.mat(list) print('创建的矩阵为4:n',matr4) n=np.array([[2,5,1],[4,6,2]]) matr5=np.mat(n) print('创建的矩阵为5:n',matr5)

2.1.2 bmat函数合成矩阵

复制代码
1
2
3
4
5
6
7
8
9
10
import numpy as np A = np.mat('1 1; 1 1') B = np.mat('2 2; 2 2') C = np.mat('3 4; 5 6') D = np.mat('7 8; 9 0') print("合成1:n",np.bmat([[A, B], [C, D]])) print("合成2:n",np.bmat('A,B; C,D'))

 

练习:生成数组并执行简单操作

生成5行3列的数组,满足均值0,方差为1的均匀分布。

1)重复第一行元素,在原数组第一行的下面新增一行;

2)重复第2列元素,作为新增的第4列 (B);

3)修改第三、四行第三列元素为  100,101;

4)使用for循环计算第4行的平均值,保留两位小数

5)   在最左侧一列为每一行编写一个序号,序号从小到大排列,最小的为1,接着1、2、3…依次类推

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import numpy as np arr1 = np.random.randn(5, 3) arr2 = arr1[0, :] arr3 = np.insert(arr1, 0, values = arr2, axis = 0) arr4 = arr3[:, 1] arr5 = np.insert(arr3, 0, values = arr4, axis = 1) arr5[2:4, 2]=100, 101 print(arr5) arr7=arr5[3,:] for i in arr7: sum=0 sum += i print(sum/arr7.size) #a = np.mean(arr5, axis=1) #print(a[3]) b = arr5.shape arr6 =np.arange(b[0]) #print(arr6) #print(arr6.shape) arr6.shape=(6, 1) #arr6 = [[1], [2], [3], [4], [5], [6]] print(np.concatenate((arr6, arr5), axis=1))

最后

以上就是粗心金毛最近收集整理的关于Python学习笔记(4) NumPy数值计算基础11 NumPy 数组对象 ndarray2 NumPy 矩阵与通用函数练习:生成数组并执行简单操作的全部内容,更多相关Python学习笔记(4)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部