南宁网站建设nnit30,国内外知名建设设计网站,html网站免费模板下载,内网穿透做网站目录使用array创建数组使用arange创建数组Numpy中的随机数创建ndarray对象的常用属性其他方式创建数组索引和切片#xff08;一位数组、二维数组#xff09;数组的复制修改数组的维度数组的拼接数组的分割数组的转置numpy的函数使用使用array创建数组
# codingutf-8import n…
目录使用array创建数组使用arange创建数组Numpy中的随机数创建ndarray对象的常用属性其他方式创建数组索引和切片一位数组、二维数组数组的复制修改数组的维度数组的拼接数组的分割数组的转置numpy的函数使用使用array创建数组
# codingutf-8import numpy as np
利用array创建数组的简单介绍
print(使用array函数创建一维数组)
a np.array([1, 2, 3, 4, 5, 6])
print(a)
print(type(a))print(使用array函数创建二维数组)
b np.array([[1, 2], [2, 3], [4, 5]])
print(b)
print(type(b))print(使用array函数创建三维数组)
c np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]]])
print(c)
print(type(c))
array函数的常用方法
print( array函数的dtype的使用:设置创建数组里面元素的类型)
d np.array([1, 2, 3], dtypefloat)
print(d)
print(type(d))print(array函数的ndim的使用:设置数组的维度)
e np.array([1, 2, 3], dtypefloat, ndmin3)
print(e)
使用arange创建数组
# coding utf-8import numpy as np# range的使用 range(start,end,step) 默认为[start,end) step默认为1 start默认从0开始
print(从1开始到5结束不包含5默认步长为1)
list1 list(range(1, 5))
print(list1)print(默认从0开始到5结束不包含5步长默认为1)
list2 list(range(5))
print(list2)print(从2开始到10结束不包含10步长为2)
list3 list(range(2, 10, 2))
print(list3)# 与range类似用arange创建数组
print(从1开始3结尾)
a np.arange(1, 3)
print(a)print(从1开始3结尾,步长为0.1)
b np.arange(1, 3, 0.1)
print(b)print( dtype的使用)
c np.arange(6, 9, dtypefloat)
print(c)
Numpy中的随机数创建
# codingutf-8import numpy as np# 随机小数
def randomTest():print(使用random创建一维数组,size规定了一维数组的元素个数 范围[0.0,1.0))a np.random.random(size6)print(a)print(创建一个二维数组 三行5列)b np.random.random(size(3, 5))print(b)print(创建三维数组 两个三行四列)c np.random.random(size(2, 3, 4))print(c)randomTest()# 随机整数
def randintTest():# 语法randint(low, highNone, sizeNone, dtypeNone) 这边也是左闭右开print(生成0-10之间的随机整数一维)a np.random.randint(11, size20)print(a)print(生成1到5之间的随机整数二维 (三行四列))b np.random.randint(1, 6, size(3, 4))print(b)print(生成1到10之间的随机整数三维 (两个三行四列))c np.random.randint(1, 6, size(2, 3, 4))print(c)# dtype的使用d np.random.randint(5, size2, dtypenp.int64)print(设定的dtype为, d.dtype)randintTest()# 生成正态分布数组
def randnTest():# randn函数返回一个或一组样本具有标准正态分布期望为0方差为1# randn(d0, d1, ..., dn) dn表示维度返回值为指定维度的arrayprint(eg创建一个一维的有三个元素的数组)a np.random.randn(3)print(a)print(创建一个二维的(三行四列))b np.random.randn(3, 4)print(b)print(创建一个三维的(两个三行四列))c np.random.randn(2, 3, 4)print(c)randnTest()# 创建指定期望和方差的正态分布
def normalTest():print( normal(loc0.0, scale1.0, sizeNone),默认的期望是loc0.0 方差scale1.0)a np.random.normal(size3)print(a)print(指定期望和方差)b np.random.normal(loc2, scale2, size(3, 4))print(b)normalTest() https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注 欢迎关注微信公众号宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行 如有转载请注明出处如不注明盗者必究 ndarray对象的常用属性
# codingutf-8
import numpy as np# 创建一维的数组
a np.arange(2, 5)
print(a)a1 np.array([1, 2, 3])
print(a1)# 创建二位的数组
b np.random.randint(1, 5, size(2, 3))
print(b)print(创建三维数组正态分布)
c np.random.randn(1, 2, 2)
print(c)# 常用属性
print( ndim属性)
print(ndim:, a.ndim, b.ndim, c.ndim)print(shape属性)
print(shape:, a.shape, b.shape, c.shape)print(dtype属性当前元素的类型)
print(dtype:, a.dtype, b.dtype, c.dtype)print(size属性当前元素的总个数)
print(size:, a.size, b.size, c.size)print(itemsize属性每个元素所占的字节)
print(itemsize:, a.itemsize, b.itemsize, c.itemsize)
其他方式创建数组
# codingutf-8
import numpy as npprint( numpy.zeros里面的元素用0来填充)
def zerosTest():a np.zeros(2)print(a)print(指定类型 dtype)b np.zeros((3), dtypeint)print(b)print( 创建二维数组(两行三列))c np.zeros((2, 3))print(c)zerosTest()print( numpy.ones里面的元素用1来填充)
def onesTest():a np.ones(5)print(a)print(指定类型 dtype)b np.ones((3), dtypeint)print(b)print(创建二维数组(两行三列),指定类型)c np.ones((2, 3), dtypeint)print(c)onesTest()print( empty:根据给定的维度和数值类型返回一个新的数组其元素不进行初始化。)
def emptyTest():a np.empty(6)print(a)b np.empty((2, 3))print(b)emptyTest()# linspace(等差)
# linspace(start, stop, num50, endpointTrue, retstepFalse, dtypeNone,
# axis0)
# 在指定的间隔范围内返回均匀间隔的数字。
#
# 在[start, stop]范围内计算返回num个(默认为50)均匀间隔的样本。
#
# endpoint可以选择性地排除间隔的终点。
def linspaceTest():a np.linspace(1, 5, 5)print(a)b np.linspace(1, 20, 8, endpointFalse)print(b)linspaceTest()# logspace(等比)与上面linspace类似
def logspaceTest():print(eg:2的0到9次方)a np.logspace(0, 9, 10, base2)print(a)logspaceTest()
索引和切片一位数组、二维数组
# coding utf-8import numpy as np# 一维数组的索引和切片
def oneArrayTest():# 创建一个一维数组a np.arange(8)print(a)# 索引print(正索引访问索引从0开始)print(索引0处的元素, a[0])print(索引7处的元素: , a[7])print(负索引访问倒数第一个的索引为-1)print(最后1个元素为, a[-1])print(倒数第3个元素为, a[-3])# 正向切片索引切片操作 [start:stop:step]print( 从开始到结尾)print(a[:])print(从索引2开始到结尾)print(a[2:])print(从索引2开始到索引5)print(a[2:5])print(从索引1开始到索引7步长是2)print(a[1:7:2])# 负向切片索引切片操作 [start:stop:step]print(反向获取)print(a[::-1])print(a[-6:-2])# oneArrayTest()# 二维数组的索引和切片
def twoArrayTest():a np.arange(1, 7)print(a)print(reshape的使用 eg:对上面那个一维数组进行修改形状,变为二行三列)b a.reshape((2, 3))print(b)# 索引的使用 eg:查看第二行print(b[1])print(eg:查看第一行第二列)print(b[1][2])切片的使用[对行进行切片,对列进行切片][start:stop:step,start:stop:step]print( 获取所有行和所有列)print(b[:, :])print( 获取所有行的第二列)print(b[:, 1])print(获取所有行的部分列23列)print(b[:, 1:3])print(获取部分行所有列 eg:获取奇数行 所有列)print(b[::2, :])print(获取部分行部分列 eg:获取第一行 奇数列)print(b[0:1, ::2])# 坐标获取print(获取第1行第三列的元素)print(b[0][2])print(b[0, 2])print(同时获取不同行不同列 获取第一行第三列 第二行第三列)print(b[0, 2], b[1][2])print(让上面的两个值以数组的形式返回)print(np.array([b[0, 2], b[1][2]]))print(使用坐标也可得到上面的结果,坐标前面是行 后面是列)print(b[(0, 1), (2, 2)])# 二维数组中负索引的使用print(最后一行, b[-1])print(行进行倒序为\n, b[::-1])print(行列都进行倒序为\n, b[::-1, ::-1])twoArrayTest()
数组的复制
# coding utf-8
import numpy as np# 创建一个二维的数组
a np.arange(1, 16).reshape((3, 5))
print(a)print(对a数组进行切片处理获取第一二三行第一二三列)
b a[:3, :3]
print(b)print(对b中的第一行第一列的值进行修改:可知b中更改了但是原数组a也会改变)
b[0][0] 666
print(b)
print(a)print(如何解决以上问题呢 这时就会用到numpy中的copy)
c np.copy(a[:3, :3])
c[0][0] 888
print(c)
print(a)
修改数组的维度
# coding utf-8
import numpy as np# 通过reshape()进行修改维度
# 将一维数组转换成为二维三维数组
# 创建一个一维数组
a np.arange(1, 13)
print(a)print(将一维修改为二维2,6(3,4))
# ba.reshape(3,4)
b a.reshape((3, 4))
print(b)print( 将一维修改为三维2,2,3)
c a.reshape(2, 2, 3)
print(c)# 通过np.reshape()进行修改维度
print( 将一维数组转换为二维数组)
d np.reshape(a, (2, 6))
print(d)
print( 将一维数组转换为三维数组)
d1 np.reshape(a, (2, 2, 3))
print(d1)# 多维转一维
print( 将多维数组转换为一维数组 前提:你必须知道你要转换的数组有多少个元素)
e d1.reshape(12)
print(这是一个简单的方法 可以不用知道需要转换的数组里面几个元素直接括号里面写-1就可以了)
e1 d1.reshape(-1)
print(e)
print(e1)# ravelflatten函数也可将多维函数转换为一维数组
e2 d1.ravel()
print(e2)
e3 d1.flatten()
print(e3)
数组的拼接
# coding utf-8
import numpy as np# 创建两个数组
a np.array([[1, 2, 3], [4, 5, 6]])
b np.array([[11, 12, 13], [14, 15, 16]])
print(a)
print(b)print(使用hstack进行水平拼接)
# 列表
hs1 np.hstack([a, b])
print(hs1)
# 元组
hs2 np.hstack((a, b))
print(hs2)print(使用vstack进行垂直拼接)
# 列表
vs1 np.vstack([a, b])
print(vs1)
# 元组
vs2 np.vstack((a, b))
print(vs2)# concatenate的使用
print( axis0默认 垂直方向拼接 相当于vatsck)
con1 np.concatenate((a, b), axis0)
con2 np.concatenate((a, b))
print(con1)
print(con2)print(axis1 水平方向拼接 相当于hatsck)
con3 np.concatenate((a, b), axis1)
print(con3)print(三维数组有三个轴axis 0 ,axis 1, axis 2)
b np.arange(1, 25).reshape(1, 3, 8)
print(b, b.shape)
b1 np.arange(101, 125).reshape(1, 3, 8)
print(b1, b1.shape)# 三维 axis0
ax_zero np.concatenate((b, b1), axis0)
print(ax_zero, ax_zero.shape)# 三维 axis1
ax_one np.concatenate((b, b1), axis1)
print(ax_one, ax_one.shape)# 三维 axis2
ax_two np.concatenate((b, b1), axis2)
print(ax_two, ax_two.shape)
数组的分割
# coding utf-8
import numpy as np# 创建一个一维数组
a np.arange(1, 13)# split函数分割
# 对一维数组进行分割
# 传递整数平均分割
sp_one np.split(a, 4, axis0)
print(sp_one)# 传递数组按位置进行分割
print(eg:1到3为一组4到7为一组8到12为一组)
sp_two np.split(a, [3, 7])
print(sp_two)# 对二维数组进行分割
b np.arange(1, 25).reshape(4, 6)
print(b)
print(axis 0,垂直方向平均分割,将b分为两个数组w,y)
w, y np.split(b, 2, axis0)
print(w)
print(y)print(axis 0,垂直方向按位置分割,将b分为两个数组w(12行),y(3行),g(4行))
w, y, g np.split(b, [2, 3], axis0)
print(w)
print(y)
print(g)print(axis 1,水平方向将b分为两个数组w,y)
w, y np.split(b, 2, axis1)
print(w)
print(y)print(axis 1,水平方向将b分为两个数组w,y,前4列为一个部分后面几列为一个部分)
w, y np.split(b, [4], axis1)
print(w)
print(y)print(hsplit:按照水平方向分割 eg:分成两个部分前三列一部分后三列一部分)
w, y np.hsplit(b, 2)
print(w)
print(y)print(hsplit:按照位置分割 eg:前五列为一组 后一列为一组)
w, y np.hsplit(b, [5])
print(w)
print(y)# vsplit:按照垂直方向分割
print(vsplit:按照垂直方向分割 eg:分成两个部分前三行一部分后三行一部分)
w, y np.vsplit(b, 2)
print(w)
print(y)print(vsplit:按照位置分割 eg:前三行为一组 后一行为一组)
w, y np.vsplit(b, [3])
print(w)
print(y)
数组的转置
# coding utf-8
import numpy as np# 数组的转置可以联想到我们在大二学习的线性代数当中矩阵的转置
# 创建一个二维数组
a np.arange(1, 25).reshape(4, 6)
print(a, a.shape)print(transpose函数进行数组的转置 a[i][j]---a[j][i])
b a.transpose()
print(b, b.shape)print(还可以直接使用T来实现转置)
print(a.T)print(使用numpy中的transpose实现转置)
c np.transpose(a)
print(c)# 多维数组进行转置
a a.reshape(2, 3, 4)
print(a, a.shape)
print(对于三维a[i][j][k]进行转置 默认将i和k进行交换 eg:将a[2][3][4]进行转置就变为a[4][3][2])
b np.transpose(a)
print(b, b.shape)
numpy的函数使用
# coding utf-8
import numpy as npa np.arange(9).reshape(3, 3)
b np.array([9, 9, 9])
print(加法:ab)
print(np.add(a, b))
print(a b)print(减法b-a)
print(np.subtract(b, a))
print(b - a)# out 参数的使用
print(乘法a*10)
c np.empty((3, 3), dtypenp.int)
np.multiply(a, 10, outc)
print(c)# out 参数的使用
print(除法a*2)
d np.empty((3, 3))
np.divide(a, 2, outd)
print(d)# 三角函数
print(三角函数)
a np.array([0, 30, 60, 90])
print(np.sin(a))print(around:四舍五入 ceil向下取整 floor向上取整)
a np.array([3.99, 7.12, 9, 6, 7.23, 3.1, 6.55])
print(around:, np.around(a))
print(ceil:, np.ceil(a))
print(floor:, np.floor(a))# 聚合函数常用聚合函数
np.sum() //求和
np.prod() //所有元素相乘
np.mean() //平均值
np.std() //标准差
np.var() //方差
np.median() //中位数
np.power() //幂运算
np.sqrt() //开方
np.min() //最小值
np.max() //最大值
np.argmin() //最小值的下标
np.argmax() //最大值的下标
np.inf //无穷大
np.exp(10) //以e为底的指数
np.log(10) //对数
print(简单的sum(),max(),min())
a np.array([6,7,9,5,3,4,1,2])
print(sum:,np.sum(a))
print(max:,np.max(a))
print(min:,np.min(a))print(np.argmin() 最小值的下标 np.argmax() 最大值的下标)
print(argmin:,np.argmin(a))
print(argmax:,np.argmax(a))print(power的使用)
a np.arange(1,13).reshape(3,4)
print(原a\n,a)
print(power后的a: \n,np.power(a,2))print(power中的out的使用)
xnp.arange(5)
ynp.zeros(8)
np.power(2,x,outy[:5])
print(y)# median()中位数
print(一维数组的中位数偶数的中位数最中间两个数的平均值 eg:[6,7,9,5,3,4,1,2] 首先进行排序[1,2,3,4,5,6,7,9] 中位数为45除24.5)
a np.array([6,7,9,5,3,4,1,2])
print(np.median(a))print(一维数组的中位数奇数的中位数最中间的数 eg:[6,7,9,5,3,4,1] 首先进行排序[1,3,4,5,6,7,9] 中位数为最中间的数5)
a np.array([6,7,9,5,3,4,1])
print(np.median(a))# 二维数组求中位数 要通过axis制定轴
a np.arange(1,13).reshape(3,4)
print(a)
print(垂直方向,np.median(a,axis0))
print(水平方向,np.median(a,axis1))# mean求平均值
print(一维数组求平均值)
anp.array([6,7,9,5,3,4,1,2])
print(a)print(二维数组求平均值: axis指定轴求平均)
a np.arange(1,13).reshape(3,4)
print(a)
print(axis0 垂直方向,np.mean(a,axis0))
print(axis1 水平方向,np.mean(a,axis1)) https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注 欢迎关注微信公众号宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行 如有转载请注明出处如不注明盗者必究