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', ''], 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]
    #
    #
    # [[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进行数据分析》搬运至此)

NumPy基础操作的更多相关文章

  1. numpy 基础操作

    Numpy 基础操作¶ 以numpy的基本数据例子来学习numpy基本数据处理方法 主要内容有: 创建数组 数组维度转换 数据选区和切片 数组数据计算 随机数 数据合并 数据统计计算 In [1]: ...

  2. NumPy基础操作(3)——代数运算和随机数

    NumPy基础操作(3)--代数运算和随机数 (注:记得在文件开头导入import numpy as np) 目录: NumPy在矩阵运算中的应用 常用矩阵运算函数介绍 编程实现 利用NumPy生成随 ...

  3. NumPy基础操作(2)

    NumPy基础操作(2) (注:记得在文件开头导入import numpy as np) 目录: 写在前面 转置和轴对换 NumPy常用函数 写在前面 本篇博文主要讲解了普通转置array.T.轴对换 ...

  4. [笔记]NumPy基础操作

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

  5. 学习Numpy基础操作

    # coding:utf-8 import numpy as np from numpy.linalg import * def day1(): ''' ndarray :return: ''' ls ...

  6. [笔记]SciPy、Matplotlib基础操作

    NumPy.SciPy.Matplotlib,Python下机器学习三大利器.上一篇讲了NumPy基础操作,这节讲讲SciPy和Matplotlib.目前接触到的东西不多,以后再遇到些比较常用的再更新 ...

  7. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  8. 利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  9. [转]python与numpy基础

    来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...

随机推荐

  1. 简明Python3教程 10.模块

    简介 现在你已经知道通过定义函数可以在你的程序中复用代码.但当你想在你编写的其他程序中复用大量函数怎么办呢? 也许你可以猜到了,办法就是利用模块. 有各种编写模块的方式,但最简单的方式是创建一个以.p ...

  2. Java Swing界面编程(29)---JCheckBox事件处理

    JCheckBox和JRadioButton的事件处理监听接口是一样的,都是使用ItemListener接口. package com.beyole.util; import java.awt.Con ...

  3. HTML5 随手记(4)

    新中国 chrome 不支持 -webkit-text-size-adjust 设定.可以小于 12px.为了尺寸小于 12px 和清晰的显示效果,现在无解(scale 不清楚) 版权声明:本文博客原 ...

  4. 构建自己的PHP框架(composer)

    完整项目地址:https://github.com/Evai/Aier Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统.Compo ...

  5. wpf C# 操作DirectUI窗口 SendMessage+MSAA

    原文:wpf C# 操作DirectUI窗口 SendMessage+MSAA 最近做一个抓取qq用户资料的工具,需要获取qq窗口上的消息,以前这种任务是用句柄获取窗口中的信息,现在qq的窗口用的是D ...

  6. WPF MessageBox 添加确认取消按钮 并判断

    很简单的功能随笔 if (System.Windows.MessageBox.Show("您确定要删除吗?", "提示:", MessageBoxButton. ...

  7. Hutool 3.0.8 发布,Java 工具集

    Hutool 是一个Java工具包,提供了丰富的文件.日期.日志.正则.字符串.配置文件等工具方法,并封装了一套简单易用的ORM框架. 主页:http://hutool.cn/ 文档:http://h ...

  8. JS实时检测文本框内容长度

    通过js代码实时监测,文本框内容的变化以及长度,下图是一个实际使用场景. HTML部分: <input id="Text1" type="text" on ...

  9. iOS UITableView动态隐藏或显示Item

    通过改变要隐藏的item的高度实现隐藏和显示item 1.创建UITableView #import "ViewController.h" @interface ViewContr ...

  10. UWP-电子音读出文字

    原文:UWP-电子音读出文字 源码: https://github.com/lindexi/Markdown 代码 private async void speech(string str, Medi ...