学习笔记,仅供参考,觉得哪里不错就记哪里

学习书目:《python编程从数据分析到数据编程》–朝乐门;

参考自:numpy.random.randn()与rand()的区别;Python numpy.full函数方法的使用


文章目录

  • 随机数
    • 生成一个随机数
    • 生成一个随机数组
  • np.full方法
  • 形状与重构
  • ndarray的拆分与合并
    • 拆分
    • 合并
  • 插入与删除
  • 缺失值处理
    • 检测缺失值
    • 在缺失值存在的情况下求和
  • ndarray的排序

随机数

生成一个随机数

输入:

import random
#设置随机种子
random.seed(3)
#生成一个[-10, 10]之间的随机浮点数,并保留2位小数
round(random.uniform(-10, 10), 2)
#生成[1, 100]之间的随机整数
random.randint(1, 100)
#生成[0.0, 1.0)之间的随机浮点数
random.random()

输出:

-5.24
70
0.13042279608514273

生成一个随机数组

输入:

import numpy as np
#设置随机种子
rand = np.random.RandomState(10)
#生成3*4的随机数组,范围就是[0,10)内的整数
#生成在半开半闭区间[low,high)上离散均匀分布的整数值
rand.randint(0, 10, (3, 4))
#生成[0, 100]的随机数组
#以给定的形状创建一个数组,并在数组中加入在[0,1]之间均匀分布的随机样本。
rand.rand(10)*100
#生成等距数列
np.linspace(0, 10, 10)
np.linspace(0, 10, 9)

输出:

array([[9, 4, 0, 1],[9, 0, 1, 8],[9, 0, 8, 6]])
array([ 68.53598184,  95.33933462,   0.39482663,  51.21922634,81.26209617,  61.25260668,  72.17553174,  29.18760682,91.77741225,  71.45757834])
array([  0.        ,   1.11111111,   2.22222222,   3.33333333,4.44444444,   5.55555556,   6.66666667,   7.77777778,8.88888889,  10.        ])
array([  0.  ,   1.25,   2.5 ,   3.75,   5.  ,   6.25,   7.5 ,   8.75,  10.  ])

np.full方法

语法:

numpy.full(shape, fill_value, dtype=None, order='C')
  • 参数解释
参数 含义
shape 参数值为整数或整数序列,新数组的形态,单个值代表一维,参数传元组,元组中元素个数就代表是几维,例如, (2, 3) or 2.
fill_value 参数值为标量(无向量),表示填充数组的值
dtype 参数值为字符串型数据,表示填充数组的数据类型,默认值为None
order 参数值为可选项{‘C’, ‘F’},,在内存中以行为主(C风格)或列为主(Fortran风格)连续(行或列)顺序存储多维数据。
  • 举个例子

输入:

np.full((2, 3), 5, 'int64', 'C')

输出:

array([[5, 5, 5],[5, 5, 5]], dtype=int64)

形状与重构

输入:

import numpy as np
array1 = np.arange(1, 21)
id(array1)
#查看形状
array1.shape
#利用reshape重构,返回另一个新的数组
reArray = array1.reshape(4, 5)
reArray.shape
id(reArray)
#利用resize重构,更改数组本身,即就地修改
array1.resize(5, 4)
array1
#转置变换,返回另一个新的数组
array1.swapaxes(0, 1)
#将多维数组转换为1维数组,返回另一个新的数组
array1.flatten()
#将多维数组转换为嵌套列表,返回另一个新的列表
array1.tolist()
#重新设定数组的数据类型,返回另一个新的数组
array1.astype(np.float)

输出:

652802545664
(20,)
(4, 5)
652802546784
array([[ 1,  2,  3,  4],[ 5,  6,  7,  8],[ 9, 10, 11, 12],[13, 14, 15, 16],[17, 18, 19, 20]])
array([[ 1,  5,  9, 13, 17],[ 2,  6, 10, 14, 18],[ 3,  7, 11, 15, 19],[ 4,  8, 12, 16, 20]])
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,18, 19, 20])
[[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12],[13, 14, 15, 16],[17, 18, 19, 20]]
array([[  1.,   2.,   3.,   4.],[  5.,   6.,   7.,   8.],[  9.,  10.,  11.,  12.],[ 13.,  14.,  15.,  16.],[ 17.,  18.,  19.,  20.]])

ndarray的拆分与合并

拆分

输入:

import numpy as np
array1 = np.array([1, 2, 3, 4, 5, 6, 7, 8])
#横向拆分, split方法
x1, x2, x3 = np.split(array1, [3, 5])
x1, x2, x3
#纵向拆分
upper, lower = np.vsplit(array1.reshape(2, 4), [1])
#可以试试[0], [2], [3]
upper
lower

输出:

(array([1, 2, 3]), array([4, 5]), array([6, 7, 8]))
array([[1, 2, 3, 4]])
array([[5, 6, 7, 8]])

合并

输入:

#数据的合并
np.concatenate((upper, lower), axis = 0)
#axis = 0表示对列进行拼接,axis = 1表示对行进行拼接
#列拼接, 列数必须相等
np.vstack([upper, lower])
#行拼接,行数必须相等
np.hstack([upper, lower])

输出:

array([[1, 2, 3, 4],[5, 6, 7, 8]])
array([[1, 2, 3, 4],[5, 6, 7, 8]])
array([[1, 2, 3, 4, 5, 6, 7, 8]])

插入与删除

输入:

import numpy as np
array1 = np.array([1, 2, 3, 4, 5, 6, 7, 8])
#删除某个位置的元素
np.delete(array1, 2)
#在某个位置插入特定元素
np.insert(array1, 1, 10)

输出:

array([1, 2, 4, 5, 6, 7, 8])
array([ 1, 10,  2,  3,  4,  5,  6,  7,  8])

缺失值处理

检测缺失值

输入:

import numpy as np
array1 = np.array([1, 2, 3, 4, 5, 6, 7, 8])
#判断数组的每个元素是否为缺失值
np.isnan(array1)
#判断数组中是否至少有一个缺失值
#any:一个为True则返回True
np.any(np.isnan(array1))
#判断数组中是否全都是缺失值
#any:全都为True则返回True
np.all(np.isnan(array1))

输出:

array([False, False, False, False, False, False, False, False], dtype=bool)
False
False

在缺失值存在的情况下求和

输入:

import numpy as np
array1 = np.array([1, 2, 3, np.nan])
#返回给定轴上的数组元素的和,将非数字(nan)处理为零。
np.nansum(array1)
np.sum(array1)

输出:

6.0
nan

ndarray的排序

输入:

import numpy as np
array1 = np.array([5, 4, 6, 3, 7])
#返回排序结果
np.sort(array1)
#返回排序后的index
np.argsort(array1)
array2 = np.random.randint(0, 10, (3, 4))
array2
#分别对多维数组,按照行(1)和列(0)进行排序
np.sort(array2, axis = 1)
np.sort(array2, axis = 0)

输出:

array([3, 4, 5, 6, 7])
array([3, 1, 0, 2, 4], dtype=int64)
array([[6, 6, 5, 0],[6, 0, 1, 1],[6, 6, 3, 5]])
array([[0, 5, 6, 6],[0, 1, 1, 6],[3, 5, 6, 6]])
array([[6, 0, 1, 0],[6, 6, 3, 1],[6, 6, 5, 5]])

python从数分到数编(part2)--随机数及数组相关推荐

  1. python从数分到数编(part1)--基础

    学习笔记,仅供参考,觉得哪里不错就记哪里 使用工具:Jupyter Notebook(IPython notebook) 学习书目:<python编程从数据分析到数据编程>–朝乐门; 文章 ...

  2. python sns绘制回归线_Python数分实战:员工流失情况预测

    在很久之前,我有写一个Excel数据分析的实战项目,不晓得大家还记不记得,感兴趣的童鞋可以回看: A九姑娘:Excel数分实战:员工流失率分析​zhuanlan.zhihu.com 本次的项目数据依旧 ...

  3. python编写一个判断完数的函数过程_第4章-30 找完数 (20分)python

    所谓完数就是该数恰好等于除自身外的因子之和.例如:6=1+2+3,其中1.2.3为6的因子.本题要求编写程序,找出任意两正整数m和n之间的所有完数. 输入格式: 输入在一行中给出2个正整数m和n(1 ...

  4. python判断是否回文_对python判断是否回文数的实例详解

    设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=1234321,则称n为一回文数:但若n=1234567,则n不是回文数. 上面的解释就是说回文数和逆 ...

  5. 2015/Province_Java_A/3/九数分三组

    九数分三组 1~9的数字可以组成3个3位数,设为:A,B,C, 现在要求满足如下关系: B = 2 * A C = 3 * A 请你写出A的所有可能答案,数字间用空格分开,数字按升序排列. 注意:只提 ...

  6. python输出矩阵的行数_python查看矩阵的行列号以及维数方式

    print(X.shape):查看矩阵的行列号 print(len(X)):查看矩阵的行数 print(X.ndim):查看矩阵的维数 1 查看矩阵的行列号 2 查看矩阵的行数 3 查看矩阵的维数 补 ...

  7. 数分练习-淘宝用户行为

    一.背景及数据 背景: # 原数据集共有大约1200万条数据,为便于运行随机抽取100万条数据,内容为淘宝APP2014年11月18日至2014年12月18日的用户行为数据,共6列字段,列字段分别是: ...

  8. python怎么选取第几行第几列_python DataFrame获取行数、列数、索引及第几行第几列的值方法...

    python DataFrame获取行数.列数.索引及第几行第几列的值方法 更新时间:2018年04月08日 16:22:00 作者:小白九九 下面小编就为大家分享一篇python DataFrame ...

  9. 数分学习笔记 vol.1 <游戏数分基本工作内容>

    写作目的 快要脱离学生身份了,但为了在未来的工作中不被淘汰,个人认为继续学习是必须的.因此写下了这个博客,希望自己能在工作中不断积累,总结经验,不断提升. 所有内容仅代表个人的想法和感悟,如有不同意见 ...

最新文章

  1. Spring Boot 异步请求和异步调用
  2. 百度某员工抱怨:前人代码写得像坨*,颠覆了对大厂的认知
  3. C++知识点61——typename与class、模板编程与继承、模板类和友元、类模板与static成员
  4. TortoiseGit密钥的配置
  5. 破解RSA的一些技术
  6. springMVC——注解配置方式实现Helloworld
  7. 单链表删除、修改和查找
  8. bootstrap清除拟态框内添加新HTML再打开时会有缓存现象
  9. fn:substring()函数
  10. linux下jupyter notebook路径不对的解决方法
  11. 增加mysql的sortbuffer_mysql 参数调优(14)之优化filesort sort_buffer_size、innodb_sort_buffer_size...
  12. 使用CDN时注意的问题
  13. AdvancedInstaller.com 命令行参数
  14. OCM_第十一天课程:Section5 —》数据仓库
  15. 机械键盘各种设定(品牌:黑爵等)
  16. arctanx麦克劳林公式推导过程_【数学】「专题」初识泰勒级数(Taylor Series)与泰勒公式(Taylor#x27;s Formula)...
  17. nandflash地址的物理地址,逻辑地址,spare地址等理解
  18. 阿里云服务器和虚拟主机之间的区别
  19. 产业分析:工业机器人市场研究
  20. vue项目使用svg文件

热门文章

  1. 7.4.7 2DPCA
  2. 全国计算机等级考试收费不一样,2018年北京全国计算机等级考试收费标准
  3. python sftp模块_python下载paramiko模块准备使用SFTP的坑!!!
  4. 逆向工程---Mybatis学习笔记(十二)
  5. 合并多个文本文件中的内容到一个文件中
  6. 性能测试-Gatling(一)
  7. 算法面试:栈实现队列的方案
  8. C++ 解决enum redeclaration的冲突
  9. JS setTimeout 与 setInterval
  10. vi/vim多行注释和取消注释