资讯专栏INFORMATION COLUMN

Python Numpy 笔记

imingyu / 3355人阅读

摘要:在中维度称为轴,轴的数量称为秩的数组类叫做返回字符串表示的类型名称接受浮点数,但是由于精度影响,输出的元素个数不确定。

这次机器学习的作业可以用第三方库了,果断抛弃 MATLAB 改用 Python
但是操作数组的 Numpy 之前一直没用过,今天先看看官方教程入个门

The Basics

Numpy 中主要的对象是同类元素组成的多维数组,可以通过一个正整数的元组进行索引。
在 Numpy 中维度(dimension)称为轴(axes),轴的数量称为秩rank

[[1., 0., 0.], [0., 1., 2.]] :rank=2
the first dimension has a length of 2, the second dimension has a length of 3

Numpy 的数组类叫做 ndarray or array
attributes:

ndarray.ndim

ndarray.shape

ndarray.size

ndarray.dtypendarray.dtype.name 返回字符串表示的类型名称

ndarray.data

Example:

>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2
>>> a.dtype.name
"int64"
>>> a.itemsize
8
>>> a.size
15
>>> type(a)

>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8])
>>> type(b)
Array Creation

create from list/tupe:

a = np.array([1, 2, 3])

b = np.array([[1, 2, 3], [4, 5, 6]], dtype=float)

create with shape:

zeros: np.zeros((3, 4))

ones: np.ones((2, 4, 3))

empty: np.empty((2, 3)) uninitialized

create sequences of number (similar to range()):

arange: np.arange(10, 30, 5) syntax is the same as range() but returns array

接受浮点数,但是由于精度影响,输出的元素个数不确定。这种情况应使用 linspace

linspace: np.linspace(0, 2, 9) return an array contains 9 numbers from 0 to 2

Basic Operations

算数操作对于 array 是按元素运算的,并返回一个新的 array

>>> a = np.array( [20,30,40,50] )
>>> b = np.arange( 4 )
>>> b
array([0, 1, 2, 3])
>>> c = a-b
>>> c
array([20, 29, 38, 47])
>>> b**2
array([0, 1, 4, 9])
>>> 10*np.sin(a)
array([ 9.12945251, -9.88031624,  7.4511316 , -2.62374854])
>>> a<35
array([ True, True, False, False], dtype=bool)
>>> A = np.array( [[1,1],
...             [0,1]] )
>>> B = np.array( [[2,0],
...             [3,4]] )
>>> A*B                         # elementwise product
array([[2, 0],
       [0, 4]])

# 两种矩阵乘法
>>> A.dot(B)
array([[5, 4],
       [3, 4]])
>>> np.dot(A, B)
array([[5, 4],
       [3, 4]])

一元运算 (sum, min, max)

>>> a = np.random.random((2,3))
>>> a
array([[ 0.18626021,  0.34556073,  0.39676747],
       [ 0.53881673,  0.41919451,  0.6852195 ]])
>>> a.sum()
2.5718191614547998
>>> a.min()
0.1862602113776709
>>> a.max()
0.6852195003967595
>>> b = np.arange(12).reshape(3,4)
>>> b
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
>>>
>>> b.sum(axis=0)                            # sum of each column
array([12, 15, 18, 21])
>>>
>>> b.min(axis=1)                            # min of each row
array([0, 4, 8])
Indexing, slicing and iterating

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44658.html

相关文章

  • python学习笔记 --- python中的list和numpy中的矩阵分析

    摘要:中的和中的矩阵分析由于之前在做的源码学习,并且将其的源码翻译成了的版本。在逛知乎里,我又发现了很多关于为什么这么快的讨论,很有意思。作者链接来源知乎著作权归作者所有。 python中的list和numpy中的矩阵分析 Author : Jasper Yang School : Bupt preface 由于之前在做GIbbsLDA++的源码学习,并且将其c++的源码翻译成了pyth...

    DobbyKim 评论0 收藏0
  • Python数据分析实用程序

    摘要:机器学习由于数据量较大,技术已成为必要。以下脚本演示了世界银行数据的线性回归实用程序和缓存下载程序省略了水印和绘图标签的代码代码应显示以下图像该计划下载年世界银行数据,并将婴儿死亡率与人均进行对比。 showImg(https://segmentfault.com/img/remote/1460000019179713); 来源 | 愿码(ChainDesk.CN)内容编辑 愿码Sl...

    mozillazg 评论0 收藏0
  • Programming Computer Vision with Python (学习笔记二)

    摘要:首先介绍跟图像处理显示有关两个库和,然后介绍增强图像对比度的实现原理。直方图均衡化就是为了达到这个目的,均衡化后的图像,像素落在每个灰度级上的个数是相等的。 首先介绍跟图像处理、显示有关两个库:NumPy和Matplotlib,然后介绍增强图像对比度的实现原理。 NumPy NumPy是Python用于科学计算的基础库,提供了一些很有用的概念,如:N维数组对象,可用于表示向量、矩阵、图...

    Berwin 评论0 收藏0
  • Python数据分析学习笔记之Pandas入门

    摘要:是一个数据分析的开源库。与表格或关系数据库中的表非常神似。注意带有一个索引,类似于关系数据库中的主键。的统计函数分组与聚合通过方法,可以对数据组施加一系列的函数。函数的作用是串联,追加数据行使用函数。 pandas(Python data analysis)是一个Python数据分析的开源库。pandas两种数据结构:DataFrame和Series 安装:pandas依赖于NumPy...

    zqhxuyuan 评论0 收藏0
  • SegmentFault 技术周刊 Vol.30 - 学习 Python 来做一些神奇好玩的事情吧

    摘要:学习笔记七数学形态学关注的是图像中的形状,它提供了一些方法用于检测形状和改变形状。学习笔记十一尺度不变特征变换,简称是图像局部特征提取的现代方法基于区域图像块的分析。本文的目的是简明扼要地说明的编码机制,并给出一些建议。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 开始之前,我们先来看这样一个提问: pyth...

    lifesimple 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<