python 数据处理第一章 numpy库的基本用法
来源:互联网 发布:java float和Float 编辑:程序博客网 时间:2024/06/06 05:06
ndarray数组基本知识
import numpy as np
ndarray instance properties(实例属性)
ndim 维数 itemsize 元素占用的字节数 dtype 元素类型 shape形状
x=np.array([1,2,3,4])
y=np.array([[1,2,3,4],[5,6,7]])
z=np.array([[1,2,3,4],[2,3,4,5]])
print(“x.shape:”,x.shape,”y.shape:”,y.shape,”z.shape:”,z.shape)#行主序
print(“x.itemsize:”,x.itemsize,”y.itemsize:”,y.itemsize,”z.itemsize:”,z.itemsize)
print(“x.dtype:”,x.dtype,”y.dtype:”,y.dtype,”z.dtype:”,z.dtype)
print(“x.ndim:”,x.ndim,”y.ndim:”,y.ndim,”z.ndim:”,z.ndim)
print(“x.size:”,x.size)#[1 2 3 4]
print(“y.size:”,y.size)#[list([1, 2, 3, 4]) list([5, 6, 7])]
print(“len(z):”,len(z))#Return the number of items in a container 最外层的个数.
ndarray constructor(构造器)
1.arange(start,stop(最后一个数小于stop),step(步长),dtype)
print(“np.arange(10,dtype=int):”,np.arange(10,dtype=int))
print(“np.array(1,10,2,dtype=float):”,np.arange(start=1,stop=10,step=2.73,dtype=float))
2.linspace(start,stop,num(个数),endpoint(最后一个元素是否算上),restep(是否将步长返回))
print(“np.linspace(start=12,stop=40,num=20,endpoint=False,retstep=True):”,np.linspace(start=12,stop=40,num=20,endpoint=False,retstep=True))
print(“np.linspace(start=12,stop=40,num=20,endpoint=True,retstep=False):”,np.linspace(start=12,stop=40,num=20,endpoint=True,retstep=False))
3.zeros, ones, full ,eye
print(“np.zeros((2,4)):”,np.zeros((1,4)))
print(“np.ones(4,):”,np.ones((4,)))
print(“np.full((1,2),2):”,np.full((4,1),2))
print(“np.eye(3):”,np.eye(3))#nxn单位矩阵
4.ones_like, zeros_like, full_like(a,val)
print(“np.ones_like(x):”,np.ones_like(x))
print(“np.zeros_like(x):”,np.zeros_like(x))
print(“np.full_like(x,2):”,np.full_like(x,2))
ndarray conversion(convert)(数组变换)
1.concatenate
print(“np.concatenate(x,y):”,np.concatenate((x,y)))#要求维度相同All the input arrays must have same number of dimensions
print(“np.concatenate(x,y).shape:”,np.concatenate((x,y)).shape)
2.instance conversion method
1) y=x.reshape(shape)不改变数组元素,返回一个shape形状的原数组的view(实在不行时再返回copy),原数组不变 和y=np.reshape(x,new_shape)一样
z=np.array([[1,2],[3,4],[3,5],[2,6]])
z_reshape=z.reshape((4,2))
z_T_reshape=z.T.reshape((2,4))
print(“np.may_share_memory(z,z_reshape)?”,np.may_share_memory(z,z_reshape))
print(“np.may_share_memory(z,z_T_reshape)?”,np.may_share_memory(z,z_T_reshape))
print(“z.flags[‘OWNDATA’]?”,z.flags[‘OWNDATA’])
print(“z_reshape.flags[‘OWNDATA’]?”,z_reshape.flags[‘OWNDATA’])
print(“z:”,z)
print(“z_reshape[0,:]:”,z_reshape[0,:])
z_reshape.resize((2,4))
print(“z_reshape.resize((2,4)):”,z_reshape)
print(“z:”,z)
reshape_2=np.array([1,2,3,4]).reshape((2,2))
reshape_2.resize(4,1)
print(“reshape_2:”,reshape_2)
z_2=z
z.resize((2,4))#2)x.resize(shape)修改原数组,没有返回值
print(“z_2:”,z_2)
print(“z:”,z)
np.resize(x,new_shape)新生成一个数组,占用不同的内存空间
np_resize=np.resize(z,(4,2))#不改变原数组
print(“z:”,z)
print(“np.may_share_memory(np_resize,z)?”,np.may_share_memory(np_resize,z))
3)降维
x.flatten() Return a copy of the array collapsed into one dimension.
np.ravel(x,order=’C’) It is equivalent to reshape(-1, order=order) 不改变原数组 返回的有可能是copy 有可能是view(占用同一内存空间,别名)
np_ravel=np.array([[1,2,3],[4,3,5]])
copy_np_ravel=np.ravel(np_ravel[:,0])#返回copy 空间不连续,只能新生成一个数组
print(“np.may_share_memory(np_ravel,copy_np_ravel)?”,np.may_share_memory(np_ravel,copy_np_ravel))
print(“copy_np_ravel.flags[‘OWNDATA’]?”,copy_np_ravel.flags[‘OWNDATA’])
print(“copy_np_ravel.base is np_ravel?”,copy_np_ravel.base is np_ravel)
view_np_ravel=np.ravel(np_ravel)#内存是连续的,只是看待内存的方式不一样 返回一view
print(“np.may_share_memory(np_ravel,view_np_ravel)?”,np.may_share_memory(np_ravel,view_np_ravel))
print(“view_np_ravel.flags[‘OWNDATA’]?”,view_np_ravel.flags[‘OWNDATA’])
print(“view_np_ravel.base is np_ravel?”,view_np_ravel.base is np_ravel)
print(“np_ravel np.ravel:”,np.ravel(np_ravel))
print(“np_ravel x.reshape(-1):”,np_ravel.reshape(-1))
4)y=x.astype(new_type)改变itemtype,返回新生成的数组
5)x.tolist() ndarray对象-》python中的原生list类型
print(“z.flatten():”,z.flatten())
new_array=x.astype(float)
print(“new_array:”,new_array)
print(“x:”,x,”x.tolist():”,x.tolist())
ndarray 数组的索引和切片
1.一维数组的索引和切片
x=np.array([1,2,3,4,5])
print(“x[2]”,x[2])
print(“x[1:4:2]”,x[1:4:2])#起始编号,终止编号(不含),步长
print(“x[:]:”,x[:])
2.多维数组的索引和切片
x=np.arange(24).reshape((4,6))
print(“x:”,x)
print(“x[1,2]:”,x[1,2])
print(“x[:,1:20:2]:”,x[:,1:4:2])
ndarray 数组运算
大小相等的数组之间的任何算术运算都会将运算应用到元素级。同样,数组与标量的算术运算也会将那个标量值传播到各个元素。不同大小的数组之间的运算叫做广播。
x=np.array([1,2,-3,-4.5,5])
x=x/x.mean()#mean(数组元素均值
print(“x:”,x)
1)一元函数
x=np.array([1,2,3,4.3,5.6])
print(“np.abs(x):”,np.abs(x))#abs和fabs,abs是整数取绝对值,而fabs是指浮点数取绝对值
print(“np.fabs(x):”,np.fabs(x))
print(“np.sqrt(x):”,np.sqrt(x))#平方根
print(“np.square(x):”,np.square(x))#平方
print(“np.log(x):”,np.log(x))#e为底的对数
print(“np.log2(x):”,np.log2(x))
print(“np.log10(x):”,np.log10(x))
print(“np.ceil(x):”,np.ceil(x),” np.floor(x):”,np.floor(x))#ceiling(向上取整) and floor(向下取整)
print(“np.rint(x):”,np.rint(x))#四舍五入
print(“np.modf(x):”,np.modf(x))#返回一个元组,里面是各元素的额小数部分和整数部分各形成独立的数组
np.cos(x) np.sin(x) np.tan(x) np.exp(x) np.sign(x)(各元素取符号函数)
print(“np.cos(x):”,np.cos(x))
print(“np.exp(x):”,np.exp(x))
print(“np.sign(x):”,np.sign(x))
2)二元函数 同shape 不同shape进行广播(broadcast)处理
+ - * **(乘方) /
y=np.array([1,2,3,4,10.46])
print(“x+y:”,x+y)
np.maximum(x,y) np.fmax(x,y)
np.minimum(x,y) np.fmin(x,y)
各个元素比较之后,对应的较大者或较小者组成一个新的同shape的数组
print(“np.maximum(x,y):”,np.maximum(x,y))
print(“np.fmin(x,y):”,np.fmin(x,y))
np.mod(x,y) x/y 对应元素相除剩下的余数
print(“np.mod(x,y):”,np.mod(x,y))
np.copysign(x,y)将y的符号赋予x
print(“np.copysign(x,y):”,np.copysign(x,y))
- python 数据处理第一章 numpy库的基本用法
- python-numpy的基本用法01
- python-numpy的基本用法02
- python-numpy的基本用法03
- Python学习-Numpy数据处理
- Python数据处理 numpy.median
- Python的numpy库中的shape用法
- python numpy基础(一)基本用法
- python之numpy的用法
- NumPy基础 -- 3. 基本数据处理
- 【Python】NumPy库基本使用
- python numpy包的使用二数据处理与文件读写
- numpy的基本用法(三)——numpy的索引
- numpy学习笔记一:numpy的基本用法
- numpy的基本用法(四)——numpy array合并
- numpy的基本用法(五)——numpy array分割
- numpy.random 的函数基本用法
- python 的numpy库中的mean()函数用法
- select服务器的实现
- 使用python的hdfs包操作分布式文件系统(HDFS)
- leejianjun的博客 PHP生成word并可下载
- missing: vtable for __cxxabiv1::__si_class_type_info
- c51上跑smallrtos 之4x4 矩阵键盘任务
- python 数据处理第一章 numpy库的基本用法
- X11/Xlib.h: No such file or directory X11/xpm.h: No such file or directory
- SharedPreferences详解
- JavaScript基本概念
- 蓝桥杯 第100001个素数
- 史上最清晰的红黑树讲解(上)
- zabbix下的oracle监控
- LeetCode 56 Merge Intervals(Python实现及详解)
- 简单了解Dubbo