Numpy(上)

简单来说,Numpy 是 Python 的一个科学计算包,包含了多维数组以及多维数组的操作。Numpy 的核心是 ndarray 对象,这个对象封装了同质数据类型的n维数组。起名 ndarray 的原因就是因为是 n-dimension-array 的简写。ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。

一、构建ndarray:从Python列表创建数组

import  numpy as np

np.array()

np.array(object, dtype=None)

object:转换的数据

dtype : 数据类型

二、数据类型

Numpy 中的数组比 Python 原生中的数组(只支持整数类型与浮点类型)强大的一点就是它支持更多的数据类型。

请记住,不同于 Python 列表,NumPy 要求数组必须包含同一类型的数据。如果类型不匹配,NumPy 将会向上转换(如果可行)。

让我们来领会一下什么叫做向上转换:整数-小数-字符串……

三、Numpy 的矢量化(向量化)功能

a = [[1, 2, 3], [5, 7, 8], [4, 5, 6]]
b = [[6, 2, 1], [2, 3, 1], [4, 5, 6]]

# 转换nparray
a1 = np.array(a)
b1=  np.array(b)

a1 + b1a1*b1a1 / b1a1 + 5a1 * 3a1 ** 2

for循环是“遍历”,python数据类型是不一样的,但是在Numpy中数据是一样的,矢量化是“一次性”,这就是数组运算的意思。

矢量化代码有很多优点,其中包括:

  • 矢量化代码更简洁易读
  • 更少的代码行通常意味着更少的错误
  • 该代码更接近地类似于标准数学符号(使得更容易,通常,以正确地编码数学构造)
  • 矢量化导致更多的“Pythonic”代码。如果没有向量化,我们的代码将会效率很低,难以读取for循环。

四、创建常用的数组

单位矩阵,全零矩阵,三角矩阵等常用的矩阵数组,在线性代数的辅助计算中有很多特殊的作用。下面我们来看一下如何创建这些矩阵数组:

1.全0数组

np.zeros((3, 5))

2.全1数组

np.ones([4,3])

3.单位矩阵

np.eye(3, dtype=int)

4.空矩阵

np.empty(10)#空矩阵里面的值是没有意义的

5.对角矩阵

np.diag([1, 5, 300, 444, 44, 666, 77])

6.设定具体的值

np.full((3, 5),3.14 )

7.设置空值

f=np.nan

8.设置无穷大

np.inf

9.随机数组

np.random.randint(1, 10, (3, 6)) #随机整数数组
np.random.rand(3,3)#生成0-1之间的随机数组

  

10.正态分布

#标准正态分布
np.random.randn(4, 5 )
 # 均值, 标准差, 形状
np.random.normal(4, 2, (10, 3)) 
# 生成t分布, df 自由度
np.random.standard_t(10 , (3,3))

# 卡方分布
np.random.chisquare(10 , (3,4))

# F分布 , 分子自由度, 分母自由度
np.random.f(2,3, (3,4))

11.随机数种子

# 随机数种子
np.random.seed(666)
np.random.randint(0,10, (3,3))

12.创建一个线性序列的数组

arange([start,] stop[, step,])

特点: 可以设置开始位置,终止位置和步长,但产生数字的数量不方便控制

np.arange(0, 20, 4)

np.linspace(开始位置, 终止位置, 产生数量)

特点: 可以设置开始位置和终止位置以及产生数量,但不方便控制步长

# 从 0 - 10  个数 28个
np.linspace(0 , 10 , 28)

 range是左闭右开,linspace闭区间。

 

 

原文地址:https://www.cnblogs.com/BC10/p/11674847.html

时间: 2024-10-09 22:52:44

Numpy(上)的相关文章

一线开发者在Reddit上讨论深度学习框架:PyTorch和TensorFlow到底哪个更好?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 PyTorch   近日,Reddit用户 cjmcmurtrie 发了一个主题为「PyTorch vs. TensorFlow」的讨论帖,想要了解这两大流行的框架之间各自有什么优势. 原帖地址:https://redd.it/5w3q74 帖子一楼写道: 我还没有从 Torch7 迁移到 TensorFlow.我玩过 TensorFlow,但我发现 Torch7 更加直观(也许是我玩得不够?).我也尝试了

python-数据处理的包Numpy,scipy,pandas,matplotlib

一,NumPy包(numeric python,数值计算) 该包主要包含了存储单一数据类型的ndarry对象的多维数组和处理数组能力的函数ufunc对象.是其它包数据类型的基础.只能处理简单的数据分析能力,对于高级的数据处理和大数据分析,采用pandas包. python自带的list可以包含不同类型的数据,原因是list保存的实际是这些数据的指针,这样才能实现不同类型的数据都能保存在list中.但缺点是这样的保存方式消耗内存,运行工作量大. 二,Scipy包(scientific python

使用 TensorFlow 实现神经网络

介绍 一直关注 数据科学 . 机器学习 的同学,一定会经常看到或听到关于 深度学习 和 神经网络 相关信息.如果你对 深度学习 感兴趣,但却还没有实际动手操作过,你可以从这里得到实践. 在本文中,我将介绍 TensorFlow ,?帮你了解 神经网络 的实际作用,并使用 TensorFlow 来解决现实生活中的问题.?读这篇文章前,需要知道 神经网络 的基础知识和一些熟悉编程理念,文章中的代码是使用 Pyhton 编写的,所以还需要了解一些 Python 的基本语法,才能更有利对于文章的理解.

机器学习-NLP之Word embedding 原理及应用

概述 自然语言是非常复杂多变的,计算机也不认识咱们的语言,那么咱们如何让咱们的计算机学习咱们的语言呢?首先肯定得对咱们的所有文字进行编码吧,那咱们很多小伙伴肯定立马就想出了这还不简单嘛,咱们的计算机不都是ASCII编码的嘛,咱直接拿来用不就好啦?我只能说too young too simple.咱们的计算机只是对咱们的“字母”进行ASCII编码,并没有对咱们的“Word”编码.world应该是咱们处理自然语言的最基本的元素,而不是字母.那么世界上有千千万万的Word,咱们具体怎么表示呢?就算找出

windows上安装numpy,scipy

题外话:本来按照python官方的设计,可以直接使用easy_install或者pip在线安装各个组件,但是国内的网络你懂得!老老实实下载文件本地安装吧. 1.安装windows 的python 2,目前最新的2.7是2.7.12,3.5是3.5.2 建议安装新一点的python(Python 2 >=2.7.9 or Python 3 >=3.4 已经包含了pip的安装,python里面安装组件要用到) https://www.python.org/ftp/python/2.7.12/pyt

[Python]在win32上安装Numpy和Matplotlib

平台: win7-32   python3.4.3 安装过程实在是太恶心了,整理了一下方便大家,没准搜索引擎能收录到了: 遇到的问题主要有: 1.各种找不到版本兼容的下载地址 2.下载到了 .whl & .egg文件不会安装 3.安装好了文件又缺各种  module    ImportError:No module named 'six'  No module named 'dateutil'  ImportError:No module named 'pyparsing' 好了~整理了一下,具

动手实践:在Windows上安装NumPy、Matplotlib、SciPy和IPython

<Python数据分析基础教程: NumPy学习指南(第2版)>第1章NumPy快速入门,本章首先,将介绍如何在不同的操作系统中安装NumPy和相关软件,并给出使用NumPy的简单示例代码.然后,我们将简单介绍IPython(一种交互式shell工具).如前言所述,SciPy和NumPy有着密切的联系,因此你将多次看到SciPy的身影.在本章的末尾,我们将告诉你如何利用在线资源,以便你在受困于某个问题或不确定最佳的解题方法时,可以在线获取帮助.本节为大家介绍动手实践:在Windows上安装Nu

在Ubuntu 14.04 64bit上安装numpy和matplotlib库

原文:http://blog.csdn.net/tao_627/article/details/44004541 按照这个成功安装! 机器学习是数据挖掘的一种实现形式,在学习<机器学习实战>过程中,需要python环境中安装好numpy和matplotlib库,特此将我在Ubuntu 14.04 64bit上的摸索过程总结如下: 书上的建议是: 在Debian/Ubuntu系统下安装Python, Numpy和Matplotlib的最佳方式是使用apt-get等软件包管理器. 避免源码包形式的

矩阵乘法在numpy/matlab/数学上的不同

数学意义上的矩阵乘法 注意事项: 1.当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘. 2.矩阵C的行数等于矩阵A的行数,C的列数等于B的列数. 3.乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和. 乘积-哈达马积(hadamard product) 乘积-克罗内克乘积 MatLab中的乘法()和点乘(.) a * b 是进行矩阵相乘, a.*b是a矩阵的每一个元素乘以b矩阵对应位置的元素 形成的一个新矩阵. Numpy In [1

numpy百题冲关,pandas百题冲关, numpy-100库直接线上生成和训练,使用google云上notebook环境

numpy百题冲关,pandas百题冲关, numpy-100库直接线上生成和训练,使用google云上notebook环境 numpy后边涉及到矩阵和后期学习到的数学知识的实践 https://www.shiyanlou.com/courses/1090/learning/ pandas涉及到pandas相关应用.例如数据清洗等内容 https://www.shiyanlou.com/courses/1091 numpy-100环境 https://github.com/rougier/num