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

概述

1 NumPy 数组对象 ndarray

1.1 创建数组

1.1.1 array函数

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函数

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函数合成矩阵

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…依次类推

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) NumPy数值计算基础11 NumPy 数组对象 ndarray2 NumPy 矩阵与通用函数练习:生成数组并执行简单操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部