我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python Numpy-基础教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python Numpy-基础教程

目录

  • 1. 为什么要学习numpy?
  • 2. Numpy基本用法
    • 2.1. 创建np.ndarry
    • 2.2. Indexing and Slicing
      • Boolean Index
    • 2.3. Universal Functions
    • 2.4. Array-oriented
    • 2.5. Mathematical Operations


  • numpy可以对整个array进行复杂计算,而不需要像list一样写loop
  • 它的ndarray提供了快速的基于array的数值运算
  • memory-efficient container that provides fast numerical operations
  • 学习pandas的必备

证明numpy比list优秀:

import numpy as np
my_arr = np.arange(1000000)
my_list = list(range(1000000))

%time for _ in range(10): my_arr2 = my_arr * 2                  # Wall time: 25 ms
%time for _ in range(10): my_list2 = [x * 2 for x in my_list]   # Wall time: 933 ms


2.1. 创建np.ndarry

注意: numpy只能装同类型的数据

# Method 1: np.array()
## 1-D
a = np.array([1,2,3])
a.shape
a.dtype  # int32, boolean, string, float
a.ndim

## 2-D
a = np.array([[0,1,2],[3,4,5]])

# Method 2:使用函数(arange, linspace, ones, zeros, eys, diag,random)创建  
a = np.arange(10)
a = np.linspace(0,1,6, endpoint=False)
a = np.ones((3,3))
a = np.zeros((3,3))
a = np.eye(3)  
a = np.diag(np.array([1,2,3,4]))  
a = np.triu(np.ones((3,3)),1)

# Method 3: Random values
a = np.random.rand(4)   # unifomr in [0,1]
a = np.random.randn(4) # Gaussian
np.random.seed(1234)

2.2. Indexing and Slicing

  • Slice create a view on the original array(change will affect original array)
# 1-D
a = np.arange(10)
a[5], a[-1]    # Index: 4,9 
a[5:8] = 12    # Slice: all 5-8 is set as 12  
arr[5:8].copy()   # Slice without view  

# 2-D
a = np.ones((3,3))
a[2]           # second row
a[2].copy()    # slice without view
a[0][2]        # special value  

a[:2]
a[:2, 1:] = 0

Boolean Index

names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
data = np.random.randn(7, 4)

data[names == 'Bob']  # select a row from data based on the if names equals Bob(boolean value)
data[~(names == 'Bob')]    # not equal to Bob
data[(names == 'Bob') | (names == 'Will')]    #e qual to Bob and Will
data[data<0] = 0  

2.3. Universal Functions

a function that performs element-wise operations on data in ndarrays

a = np.arange(10)  
b = np.arange(2,12)

# single
a + 1
a*2 
np.sqrt(a)
np.exp(a)
np.sin(a)

# binary
a>b                     # return boolean ndarray
np.array_equal(a,b)     # eual? 
np.maximum(a, b)        # find max value between each pair values
np.logical_or(a,b)      # Attentions, a and b must be boolean array

2.4. Array-oriented

  • Probelm 1

we wished to evaluate the function `sqrt(x^2 + y^2)`` across a regular grid of values.

The np.meshgrid function takes two 1D arrays and produces two 2D matrices corresponding to all pairs of (x, y) in the two arrays:

points = np.arange(-5, 5, 0.01) # 1000 equally spaced points
xs, ys = np.meshgrid(points, points)
z = np.sqrt(xs ** 2 + ys ** 2)

import matplotlib.pyplot as plt
%matplotlib inline

plt.imshow(z, cmap=plt.cm.gray); plt.colorbar()
plt.title("Image plot of $\sqrt{x^2 + y^2}$ for a grid of values")

  • Problem 2

we have two array(x,y) and one boolean array, we want select x if boolean=True, while select y if boolean=False->np.where()

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])
result = np.where(cond, xarr, yarr)        # array([1.1, 2.2, 1.3, 1.4, 2.5])

np.where的后面两个参数可以是array,数字. 是数字的话就可以做替换工作,比如我们将随机生成的array中大于0的替换为2,小于0的替换为-2

arr = np.random.randn(4, 4)
np.where(arr > 0, 2, -2)     # 大于0改为2,小于0改为-2
np.where(arr > 0, 2, arr)    # 大于0改为2,小于0不变

2.5. Mathematical Operations

a = np.random.randn(5, 4)  
np.mean(a)
np.mean(a, axis = 1)
np.sum(a)
a.consum()
a.sort()
a.argmax()  # index of maxium

names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
np.unique(names)
sorted(set(names))


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python Numpy-基础教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python Numpy-基础教程

目录 1. 为什么要学习numpy? 2. Numpy基本用法 2.1. 创建np.ndarry 2.2. Indexing and Slicing
2023-01-30

Python基础教程

6.4.5 参数收集的逆过程假设有如下函数:def add(x,y): return x+y比如说有个包含由两个相加的数字组成的元组:params = (1,2)使用*运算符对参数进行“分配”,不过是在调用而不是在定义时使用:>>> add
2023-01-31

python入门基础教程

Python是一门简单易学、功能强大的编程语言,适合初学者入门。下面是一个简要的Python入门基础教程,帮助您快速上手Python编程。1. 安装Python:首先,您需要在计算机上安装Python解释器。您可以从Python官方网站(h
2023-10-25

Python pygame入门基础教程

本篇文章给大家带来了关于Python的相关知识,大家都知道pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音,下面介绍了关于Python pygame新手入门基础教程的相关资料,希望对大家有帮助。【相关推荐:Python3视频教程 】pygame简介pygame可以实现python游戏的一个基础包。pygame实现窗口初始化pygame,init()类似于java类的初始化方法,
2022-08-08

Python基础学习教程:Python基础之基本数据类型(一)

Python基础学习教程:Python基础之基本数据类型(一)
2023-06-02

python入门基础教程10 pytho

if分支语句分支语句的作用是在某些条件控制下有选择的执行实现一定功能语句块。if 分支语句则是当if后的条件满足时,if 下的语句块被执行,语法格式如下所示:if :    statements让我们看看代码吧。>>>
2023-01-31

python入门基础教程09 pytho

表达式表达式,是由数字、算符、数字分组符号括号、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合,故表示通常是由操作数和操作符两部分组成,如果操作符前后均有操作数,我们称此类操作符是双目运算符,例如加法、减法、取模、赋值运算等运算
2023-01-31

python入门基础教程02 Pytho

02 Python简介Python简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,属于应用层软件。自从20 世纪90 年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务、自动化运维、图像处理游戏和We
2023-01-31

python入门基础教程05 Pytho

Python-Shell反馈常见错误初学者通常会使用Python-Shell来学习Python基础及语法知识,在使用Python-Shell 时会遇到这样或者那样的错误,有的是语法错误,有的是键入的函数或者变量名字拼写错误,现就初学者常出现
2023-01-31

《Python基础教程》第六章--读书

本章会介绍如何将语句组织成函数。还会详细介绍参数(parameter)和作用域(scope)的概念,以及递归的概念及其在程序中的用途。懒惰即美德斐波那契数列:任何一个数都是前两个数之和的数字序列。创建函数内建的callable函数可以用来判
2023-01-31

Python学习入门基础教程(lear

在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识。逻辑关系运算有以下几种运算符.     下面是
2023-01-31

Python Matplotlib绘图基础详细教程

目录1. 画图的基本步骤1.1一步一步看2.散点图3.条形图的绘制4.四幅子图的绘制5.饼状图的绘制6.热力图的绘制总结plt是最常用的接口1. 画图的基本步骤1.导入模块import matplotlib as mplimport
2022-07-01

Python零基础教程系列:“Hello World!”

做了这么多准备,环境也搭建好了,辅助知识也掌握了,是到了编写我们第一个Python程序的时候了。在IDLE里或Pycharm里输入:print("Hello World!")
2023-06-01

Python 3基础教程24-读取csv

本文来介绍用Python读取csv文件。什么是csv(Comma-Separated Values),也叫逗号分割值,如果你安装了excel,默认会用excel打开csv文件。1. 我们先制作一个csv文件,example.csv2. 看看
2023-01-31

Python学习入门基础教程(learn

在Python里可以自定义函数,实现某特定功能,这里首先要区分一下函数的定义和函数的调用两个基本概念,初学者往往容易混淆。      函数的定义是指将一堆能实现特定功能的语句用一个函数名标识起来,而函数的调用则是通过函数名来使用这一堆语句来
2023-01-31

Python关于Numpy的操作基础

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。  NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录