NumPy基础操作(1)

(注:记得在文件开头导入import numpy as np)

目录:

  • 数组的创建
  • 强制类型转换与切片
  • 布尔型索引
  • 结语

数组的创建

  • 相关函数

    np.array(), np.zeros(), np.zeros_like(), np.ones(), np.ones_like(), np.empty(), np.asarray()

  • 调用方法

    data1 = [1.2, 23, 24, 1.8]
    arr1 = np.array(data1)
    print(arr1)
    print(arr1.ndim)    #数组的维度
    print(arr1.shape)   #数组的形状
    print((arr1.dtype)) #数组元素的数据类型#输出结果
    out:
    [ 1.2 23.  24.   1.8]
    1
    (4,)
    float64

    data2 = [[1, 2, 3, 4], [5, 6, 7, 9]]    #如果要用array生成多维的数组必须要元素个数对称
    arr2 = np.array(data2)
    arr2_like = np.zeros_like(arr2)     #产生形状与arr2相同的全0数组
    arr4 = np.ones((3,2))
    arr7 = np.asarray(data2)        #将输入转换为一个ndarray数组
    print(arr2);print("************")
    print(arr2_like);print("************")
    print(arr4);print("************")
    print(arr7)#输出结果
    out:
    [[1 2 3 4][5 6 7 9]]
    ************
    [[0 0 0 0][0 0 0 0]]
    ************
    [[1. 1.][1. 1.][1. 1.]]
    ************
    [[1 2 3 4][5 6 7 9]]


强制类型转换与切片

  • 相关函数

    array.astype(), array[x:y]  #array是一个已定义的数组
    np.float64, np.int64, np.string_    #数组基础数据类型

  • 强制类型转换
    #在生成数据时就直接指定ndarray数组的类型
    arr8 = np.array([1,1,7], dtype=np.float64)
    print(arr8.dtype)
    print("************")#通过ndarray的方法astype更改转换数组的类型,强制类型转换
    arr9 = arr8.astype(np.int64)
    print(arr9.dtype)
    print("************")
    #Numpy的数据类型:np.object, np.string_, np.unicode_
    numeric_strings = np.array(['1.23', '-9.6', '42'], dtype=np.string_)
    print(numeric_strings.astype(float).dtype)
    print("************")#输出结果
    out:
    float64
    ************
    int64
    ************
    float64
    ************

  • 数组切片

    #数组切片是原数组的视图,对切片的任何改变都会在原始数组数据上得到体现
    #for example
    arr = np.arange(10)
    arr_slice = arr[5:8]
    arr_slice[1] = 12432
    print(arr)
    #输出结果:[    0     1     2     3     4     5 12432     7     8     9]
    arr_slice[:] = 187
    print(arr)
    #输出结果:[  0   1   2   3   4 187 187 187   8   9]#如果你是真的想要一份数组的复制版本,你需要明显的表达出来
    arr_copy = arr[:].copy()
    arr_copy[:] = 1
    print(arr)
    print(arr_copy)
    #输出结果:[  0   1   2   3   4 187 187 187   8   9]
    #        [1 1 1 1 1 1 1 1 1 1]#二维数组的访问
    arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print(arr2d[2])
    print(arr2d[0,2])   #这两种索引效果是相同的
    print(arr2d[0][2])
    print(arr2d[:2, 1:])   #在切片中再切片 #输出结果:[7 8 9]
    #        3
    #        3
    #   [[2 3]
    #    [5 6]]


布尔型索引

  • 布尔型索引

    names = np.array(['Bob','Joe', 'Will', 'Bob', 'Will', 'Joe', 'Jason'])
    data = np.random.randn(7,4)print(names=='Bob')
    print(data[names == 'Bob', 2:])     #线索出为True的行组成新的数组,再进行数组切片
    #输出结果
    #[ True False False  True False False False]
    #[[ 0.26361357 -0.98694019]
    # [ 0.34286995  0.0441788 ]]
    
    mask =(names=='Bob')|(names=='Will')        #在布尔型数组中Python关键之and 以及or无效
    print(mask)
    #输出结果
    #[ True False  True  True  True False False]#通过布尔性数组更改数组中的值
    data[data < 0] = 0      #将数组中小于0的元素的值全部改为0 


结语

第一次写博客排版和程序都有些粗糙,望见谅。(注:相关知识点从《用Python进行数据分析》搬运至此)

转载于:https://www.cnblogs.com/morvan/p/11132786.html

NumPy基础操作(1)相关推荐

  1. python之numpy基础_Python知识普及:Numpy基础操作

    原标题:Python知识普及:Numpy基础操作 Numpy基础数据结构 创建数组 Numpy通用函数 import numpy as np # reshape 改变数组维度形状 ar1 = np.a ...

  2. python学习——numpy基础操作

    numpy 基础操作 1 创建数组 2 数组常用属性和函数 3 数组元素增删 4 元素查找 5 数学运算 6 数组切片 1 创建数组 import numpy as np #以后numpy简写为np ...

  3. [笔记]NumPy基础操作

    学机器学习做点小笔记,都是Python的NumPy库的基本小操作,图书馆借的书看到的,怕自己还了书后忘了,就记下来. 一般习惯导入numpy时使用 import numpy as np ,不要直接im ...

  4. [转载]numpy基础操作

    为什么要用numpy Python中提供了list容器,可以当作数组使用.但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简单的列表[1,2,3].就需要三个指针和三 ...

  5. 数据分析:numpy和pandas基础操作详解

    数据处理基础 numpy基础 1.numpy创建数组及基础属性 2.数组的特点 3.创建常见数组 4.数组数据类型 5.生成随机数 6.一维数组索引 7.布尔索引 8. 多维数组的索引 9.实际问题 ...

  6. numpy -- 基础方法操作 array和asarray数据类型常用基础方法

    numpy 基础知识 一.引入包 import numpy as np 二.基础方法 1. Array(数组) rank:数组的维数 a.ndim # 返回维度 a = np.array([1,2,3 ...

  7. 【Python】Numpy基础:数组和矢量运算

    Numpy基础:数组和矢量运算 目录: 文章目录 一 Numpy及其重要性 二 ndarray:一种多维数组对象 1 创建ndarray 2 ndarray的数据类型 3 数组和标量之间的运算 4 基 ...

  8. Pandas CookBook -- 02DataFrame基础操作

    Pandas基础操作 简书大神SeanCheney的译作,我作了些格式调整和文章目录结构的变化,更适合自己阅读,以后翻阅是更加方便自己查找吧 import pandas as pd import nu ...

  9. Python 数据分析与展示笔记1 -- Numpy 基础

    Python 数据分析与展示笔记1 – NumPy 基础 Python 数据分析与展示系列笔记是笔者学习.实践Python 数据分析与展示的相关笔记 课程链接: Python 数据分析与展示 参考文档 ...

最新文章

  1. ***博客系统文章的数据库存储方式
  2. 第六周读书笔记《浪潮之巅》
  3. 导入os模块执行文件和目录管理操作
  4. QuerySyntax(查询语法)
  5. WinCE切换GPRS
  6. 刘强东:京东必定会击败阿里巴巴
  7. 手动选择显示_为什么考驾照的人多数选择C1而不是C2?老教练说出了真相....
  8. ZK在Eclipse下的环境搭建
  9. JavaScript 教程 (详细 全面)
  10. 安装金山词霸2007
  11. C# 使用RestSharp库实现POST请求
  12. RK系列SDK -- i2s mclk 无输出
  13. Java自动生成word文档,用心看这篇就够了【重点】
  14. linux 下kali linux 中使用hydra 进行对虚拟机中win10系统的密码破解
  15. Python爬虫——Scrapy Spiders
  16. 身高预测和体脂判断,选择结构练习,C语言
  17. c语言字符码,C语言字符转ASII码
  18. 软件测试缺陷指标,如何对缺陷进行分析,都分析哪些指标?
  19. Ansys2020R2的Fluent网格重排问题(reorder)
  20. mysql定时任务简单例子

热门文章

  1. MAC中用ImageMagick转换图像
  2. [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05)
  3. Spring boot傻瓜教程(一):官方加强版,避开坑
  4. 关于Dll、Com组件、托管dll和非托管dll的理解
  5. 构造AlertDialog弹出框,根据量值实现然用户选择列表。
  6. 图解算法之排序算法(4)——堆排序
  7. 实现点击打卡_打卡APP哪家强?快来看!这里有一款超好用的轻量级免费的习惯养成APP!...
  8. Python——生成一个大文件ips.txt,要求1200行 ,每行随机为172.25.254.0/24段的ip(京东二面笔试题)
  9. python:01字串
  10. 数据:1inch昨日锁仓量达到7.7607亿美元