概述
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 矩阵与通用函数练习:生成数组并执行简单操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复