目录
2、查看numpy的版本:print(np.__version__)
1、numpy的导入:import numpy as np
2、查看numpy的版本:print(np.__version__)
查看numpy的配置:np.show_config()
3、创建指定长度为空数组:np.zeros()
np.zeros()——返回来一个给定形状和类型的用0填充的数组;
语法结构:zeros(shape, dtype=float, order=‘C’)。
shape:形状、dtype:数据类型、order:可选参数,c代表与c语言类似,行优先;F代表列优先
#用zeros()创建指定长度的空数组
import numpy as np
a=np.zeros([3,4],int)
b=np.zeros((3,4),float)
print('a=',a)
print('b=',b)
结果:
a= [[0 0 0 0] [0 0 0 0] [0 0 0 0]] b= [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]
4、创建指定维数元素全为1的数组
#创建指定维数元素全为1的数组
data=np.ones((5,5))
print('5×5数组:',data)
5×5数组: [[1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.]]
5、查看任一数组的内存
a=np.zeros([3,4],int)
b=np.zeros((3,4),float)
print('%d bytes'%(a.size*a.itemsize))
print('%f bytes'%(b.size*b.itemsize))
结果:
48 bytes 96.000000 bytes
6、创建一个指定值域范围的向量:range()
#创建一个10—50的向量,并修改第25个值为0
data=np.arange(10,51)
data[24]=0
print(data)
结果:
[10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 0 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50]
7、实现向量反转
#实现向量反转
data=[[1,2,3],[4,5,6],[7,8,9]]
data=data[::-1]
print(data)
结果: [[7, 8, 9], [4, 5, 6], [1, 2, 3]]
8、向指定矩阵中填充指定连续数值
#创建一个3×4,值为10-21的矩阵
data=np.arange(10,22).reshape(3,4)
print(data)
结果:
[[10 11 12 13] [14 15 16 17] [18 19 20 21]]
9、找到指定数组中非0元素的索引
#找到指定矩阵非0元素的索引
data1=np.nonzero([1,2,3,0,4,0])
print('一维:',data1)
data2=[[7, 8, 0],[0, 5, 0],[1, 0, 3]]
nz=np.nonzero(data)
print('二维:',nz)
data3=[[[0,0],[1,0]],
[[0,0],[1,0]],
[[0,0],[1,0]]]
print('三维:',np.nonzero(data3))
一维: (array([0, 1, 2, 4], dtype=int64),) 二维: (array([0, 0, 1, 2, 2], dtype=int64), array([0, 1, 1, 0, 2], dtype=int64)) 三维: (array([0, 1, 2], dtype=int64), array([1, 1, 1], dtype=int64), array([0, 0, 0], dtype=int64))
10、创建指定维数的单位矩阵
#创建指定维数的单位矩阵
data=np.eye(4)
print(data)
4×4单位矩阵: [[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]]
11、创建指定维数的随机数组
#创建指定维数的随机数组
data1=np.random.random((2,2))
print("2×2的数组:",data1)
data2=np.random.random((2,2,3))
print("2×2×3的数组:",data2)
2×2的数组: [[0.13873439 0.24154541] [0.10411372 0.99342483]] 2×2×3的数组:[[[0.58784904 0.76862869 0.49496972] [0.43583442 0.51186846 0.86198214]] [[0.61422497 0.89242517 0.37251243] [0.21163412 0.44277391 0.87183754]]]
12、找出指定数组中元素的最值
#找出指定数组中元素的最值
data=[[23,45,67],[98,12,65]]
data1 = np.array(data) #将列表转为array格式
datamin,datamax=data1.min(),data1.max()
print("最小值:",datamin," 最大值:",datamax)
最小值: 12 最大值: 98
13、求一个向量元素的平均值
#求一数组元素的平均值
data=[[23,45,67],[98,12,65]]
data1 = np.array(data) #将列表转为array格式
m=data1.mean()
print('数组元素的平均值:',m)
数组元素的平均值: 51.666666666666664
14、如何修改数组的边界和内部元素
data=np.random.random((5,5))
data[1:-1,1:-1]=0#将内部元素改为0
print(data)
[[0.89627397 0.94781153 0.8114034 0.56224768 0.45138078] [0.23896854 0. 0. 0. 0.01757302] [0.12720385 0. 0. 0. 0.09280199] [0.34245612 0. 0. 0. 0.89310174] [0.9163987 0.39899548 0.95962938 0.13380556 0.62321521]]
修改边界的值
pad(array, pad_width, mode, **kwargs)
array——表示需要填充的数组;
pad_width——表示每个轴(axis)边缘需要填充的数值数目。
参数输入方式为:((before_1, after_1), … (before_N, after_N)),其中(before_1, after_1)表示第1轴两边缘分别填充before_1个和after_1个数值。取值为:{sequence, array_like, int}
mode——表示填充的方式(取值:str字符串或用户提供的函数),总共有11种填充模式;
‘constant’——表示连续填充相同的值,每个轴可以分别指定填充值,constant_values=(x, y)时前面用x填充,后面用y填充,缺省值填充0
‘edge’——表示用边缘值填充
‘linear_ramp’——表示用边缘递减的方式填充
‘maximum’——表示最大值填充
‘mean’——表示均值填充
‘median’——表示中位数填充
‘minimum’——表示最小值填充
‘reflect’——表示对称填充
‘symmetric’——表示对称填充
‘wrap’——表示用原数组后面的值填充前面,前面的值填充后面
#如何修改数组的边界元素
data=np.arange(5,9).reshape(2,2)
data1=np.pad(data,((1,1),(1,1)),'constant',constant_values = (2,0))#第一个(1,1)---上下,后一个(1,1)---前后
print(data1)
print("--------------")
#在数组边缘填充constant_values指定的数值
#(3,2)表示在A的第[0]轴填充(二维数组中,0轴表示行),即在0轴前面填充3个宽度的0
# 比如数组A中的95,96两个元素前面各填充了3个0;在后面填充2个0,比如数组A中的97,98两个元素后面各填充了2个0
#(2,3)表示在A的第[1]轴填充(二维数组中,1轴表示列),即在1轴前面填充2个宽度的0,后面填充3个宽度的0
#constant_values表示填充值,且(before,after)的填充值等于(0,0)
data2=np.pad(data,((3,2),(2,3)),'constant',constant_values = (2,0))
print(data2)
[[2 2 2 0] [2 5 6 0] [2 7 8 0] [2 0 0 0]] -------------- [[2 2 2 2 0 0 0] [2 2 2 2 0 0 0] [2 2 2 2 0 0 0] [2 2 5 6 0 0 0] [2 2 7 8 0 0 0] [2 2 0 0 0 0 0] [2 2 0 0 0 0 0]]
15、设置矩阵的对角线的值
numpy.diag(v,k=0)
若V为一维数组,则将数组元素作为对角线转换成方阵(非对角线元素为0);若V为非一维,则返回方阵的对角线(或非对角线)元素。k表示对角线移动,正数上移,负数下移
data=[1,2,3]
data=np.diag(data,0)
print(data)
print('----------')
print(np.diag(data,0))
[[1 0 0] [0 2 0] [0 0 3]] ---------- [1 2 3]
16、将一个矩阵设置成棋盘样式
#将一个矩阵设置成棋盘样式
data=np.zeros((5,5),dtype=int)
data[::2,::2]=1
data[1::2,1::2]=1
print(data)
[[1 0 1 0 1] [0 1 0 1 0] [1 0 1 0 1] [0 1 0 1 0] [1 0 1 0 1]]
本文仅供学习交流