numpy使用

numpy

  1. 随机正态分布:numpy.random.randn(7,4)   返回7行4列的随机数,且呈现正态分布
  2. n维数组对象ndarray : 能够对整个数据执行操作:类似于*10
  3. shape:形状   dtype:类型 ndim:维数
  4. 创建ndarray:
    1. 先创建列表data1=[1,2,4,5]或者data1=[[2,3,5,6][8,9,7,5]]
    2. 转换:arr1=np.array(data1)
    或直接这样
    np.zeros(10)
    np.ones((3,6))
    np.empty((2,3,2))
  5. range数组版:np.arange(15)
  6. 创建N*N的单位矩阵:eye、identity
  7. 从零到23赋给3*8:np.arange(24).reshape(3,8)

数据类型

  1. int8 uint8  int16 int32 int64……
  2. complex64 128
  3. bool
  4. object
  5. string_  固定的字符串类型,例如创建一个长度为5的字符串,应使用S10
  6. unicode  和S一样使用
  7. 定义类型:arr1=np.array(data1,dtype=np.int32)
  8. 转化类型:arr2=arr1.astype(mp.int64)

索引

  1. data[names == ‘Bob’,2] : 表示行为 names中值为Bob的索引,列为2的数组
  2. 以及其他布尔条件:!=  ,  &  , |
  3. data[data<0]=0 :  会令data中值小于0的数等于0
  4. data[names!=’Joe’]=7
  5. data[[4,3,2,3]]表示选择data的第4,3,2,3行,当列表数为负数:data[[-1]]:选择倒数第一行
  6. arr[[1,3,5,7],[2,4,6,8]]   :选择四个数分别是[1,2],[3,4],[5,6]…
  7. arr[[1,3,5,7]][:,[2,4,6,8]]或者arr[np.ix_([1,3,5,7],[2,4,6,8])],表示提取了4*4的矩阵,为第1,3,5,7行中2,4,6,8列的数

转换(设arr为二维数组)

  1. 二维数组转置:arr.T
  2. 对于高维数组,使用轴转置:arr.transpose((1,0,2))或swapaxes(1,2)
  3. 点积:np.dot(a,b)

通用函数(一元)

  1. np.sqrt(a)
  2. np.abs(a)  fabs(a)
  3. np.square(a)  平方
  4. np.exp(a)
  5. log、log10、log2
  6. sign 返回符号(1,0,-1)
  7. ceil 大于该值的最小整数
  8. floor 小于改值的最大整数
  9. rint 四舍五入
  10. modf 返回两个数组,分别是整数和小数部分
  11. isnan 、isfinite
  12. cos sin tan cosh sinh tanh
  13. arccos arcsin arctan(h)

通用函数(二元)

  1. add
  2. subtract 第一个数组减第二个
  3. multiply数组元素相乘
  4. divide整除
  5. power(a,b) A^B
  6. maximum minimum
  7. mod 求模数
  8. copysign 将第二个数组的值的符号复制给第一个数组中的值
  9. greater、greater_equal 、less、less_equal、equal、not_equal 返回布尔型

统计方法

  1. np.meshgrid(a,b) 接受两个一维数组,并产生两个二维矩阵,对应两个数组中所有的(X,Y)对,将两个一维数组变为二维矩阵,且第一个矩阵的行数是a的个数,列数是b的个数,第二个相反
  2. arr.mean()或np.mean(arr)平均数  //而当加入axis=1以后就是将一个矩阵的每一行向量求平均
  3. arr.sum()    而当加入axis=1以后就是将一个矩阵的每一行向量相加
  4. std、var  分别为标准差和方差,自由度可调
  5. cumsum 、 cumprod 累计和、累计积
  6. min、max
  7. argmin 、argmax  最大值最小值的索引

布尔型数组

    1. 有趣:
      arr = randn(100)
      (arr>0).sum()
      

 

排序

  1. arr.sort()

 

唯一化

  1. np.unique(names)   //唯一化并排序

 

数组的集合运算

  1. unqiue(x)  唯一化
  2. intersect1d(x,y) x与y的交集,且有序
  3. union1d(x,y) x与y的并集,且有序
  4. in1d(x,y) x的元素是否在Y中的布尔型数组
  5. setdiff1d(x,y) 集合的差,在x中且不在y中
  6. setxor1d(x,y) 只在x,y其中的一个的元素

文件输入输出

  1. 保存 np.save(“some_array”,arr)  arr是要保存的东西,默认是保存在扩展名为.npy的文件中
  2. np.load(‘some_array’)读取磁盘上的数组
  3. 多个数组保存在压缩文件中 np.savez(“array.npz”,a=arr,b=arr)
  4. 加载.npz文件一样:arch=np.load(‘some_array’) ,然后使用arch[‘b’]来引用

读取文本文件txt

  1. 以逗号分隔的csv文件后缀是txt的文件:np.loadtxt(“array.txt”,delimiter=’,’)
  2. np.savetxt执行相反操作

线性代数

    1. 矩阵相乘:x.dot(y)或者np.dot(x,y)
    2. numpy.linalg有一组标准的矩阵分解运算以及诸如求逆和行列式之类的东西

 

随机数生成

  1. 标准正态分布的4*4样本数组np.random.normal(size=(4,4))
  2.  确定随机数的种子seed
  3. 返回一个序列的随机排列permutation
  4. 对一个序列的随机排列shuffle
  5. 均匀分布的样本值rand
  6. randint 从给定上下限随机选取证书
  7. randn产生正态分布的样本值
  8. binomial二项分布的样本值
  9. normal 正态分布的样本值
  10. beta 产生beta分布的样本值
  11. chisquare卡方分布的样本值
  12. gamma 伽马分布的样本值
  13. uniform 产生[0,1)中均匀分布的样本值

 

where

  1. numpy.where函数是三元表达式x if condition else y的矢量化版本。定义一个布尔数组和两个值数组:

    >> xarr=np.array([1.1,1.2,1.3,1.4,1.5])
    >>> yarr=np.array([2.1,2.2,2.3,2.4,2.5])
    >>> cond=np.array([True,False,True,True,False])

    reslut=np.where(cond,xarr,yarr)

结果是[1.1 , 2.2 , 1.3 , 1.4 , 2.5 ]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值