这次机器学习的作业可以用第三方库了,果断抛弃 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:

  1. ndarray.ndim
  2. ndarray.shape
  3. ndarray.size
  4. ndarray.dtypendarray.dtype.name 返回字符串表示的类型名称
  5. 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)
<type 'numpy.ndarray'>
>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8])
>>> type(b)
<type 'numpy.ndarray'>

Array Creation

  1. create from list/tupe:

    • a = np.array([1, 2, 3])
    • b = np.array([[1, 2, 3], [4, 5, 6]], dtype=float)
  2. create with shape:

    • zeros: np.zeros((3, 4))
    • ones: np.ones((2, 4, 3))
    • empty: np.empty((2, 3)) uninitialized
  3. 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

  1. 算数操作对于 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]])
  1. 一元运算 (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

Python Numpy 笔记相关推荐

  1. [转载] python numpy 笔记(一)

    参考链接: Python中的numpy.greater_equal numpy basic 1.Write a NumPy program to get the numpy version and s ...

  2. Python学习笔记——Numpy数组的移动滑窗,使用as_strided实现

    Python学习笔记--Numpy数组的移动滑窗,使用as_strided实现 `Numpy`中移动滑窗的实现 为何需要移动滑窗 `Numpy`中的移动滑窗 移动滑窗的`as_strided`实现方法 ...

  3. 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(二):Python Numpy教程(2)

    [CS231n]斯坦福大学李飞飞视觉识别课程笔记 由官方授权的CS231n课程笔记翻译知乎专栏--智能单元,比较详细地翻译了课程笔记,我这里就是参考和总结. [CS231n]斯坦福大学李飞飞视觉识别课 ...

  4. 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(一):Python Numpy教程(1)

    最近开了一个新坑--[CS231n]斯坦福大学李飞飞视觉识别课程,准备认真学习并记录自己的学习历程. [CS231n]斯坦福大学李飞飞视觉识别课程笔记 由官方授权的CS231n课程笔记翻译知乎专栏-- ...

  5. 【Python学习笔记】cs231nPython Numpy教程

    [Python学习笔记]cs231nPython Numpy教程 回顾经典教程cs231n,完成assignments觉得很困难,感觉自己python基础语法掌握的不是很熟,就顺藤摸瓜找了cs231n ...

  6. Python学习笔记第四十八天(NumPy 矩阵库(Matrix))

    Python学习笔记第四十八天 NumPy 矩阵库(Matrix) 转置矩阵 matlib.empty() numpy.matlib.ones() numpy.matlib.eye() numpy.m ...

  7. Python numpy+pandas+matplotlib学习笔记

    Python numpy+pandas+matplotlib 本文是根据b站路飞学城Python数据分析全套教程的学习视频整理归纳的学习文档,主要目的是方便自己进行查阅,详细的还得去b站看原视频.另外 ...

  8. dataframe,python,numpy 问题索引1

    # 找出只有赌场数据的账户 gp=data.groupby(['查询账号','场景标签'],as_index=True) tj=gp.size().reset_index()按查询账号和场景标签分组并 ...

  9. Python机器学习笔记:sklearn库的学习

    自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了,scikit-learn简称sklearn,支持包括分类,回归,降维和聚类四大机器学习算法.还包括了特征提取,数据 ...

最新文章

  1. 图解|通用搜索引擎背后的技术点
  2. C++类为什么使用private?------封装性
  3. 深度学习论文阅读路线图
  4. 下巴长痘痘是什么原因?要怎么解决?(实用教程)
  5. 本地通过域名访问虚拟机的网站部署方法(Nginx)
  6. 耳机不分主从是什么意思_开学必备高性价蓝牙耳机,学生党时尚配件推荐
  7. kibana下载安装
  8. 麻将游戏-协议实现 笔记
  9. python解决urllib发送请求报错:urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED].....>
  10. ADO.NET Command对象简介
  11. 动态调试 ida linux,IDA动态调试-ELF
  12. java add two numbers_两数相加(Add Two Numbers)
  13. android开发01 --开发工具
  14. HDU 2870 Largest Submatrix
  15. 计算机网络工程课程设计
  16. 导出java applet_Java Applet基础——输出HelloWorld
  17. 计算机研究生开题报告ppt模板,硕士开题报告ppt模板
  18. 基于jsp+mysql+Spring+SpringMVC+mybatis的ssm妇女联合会管理系统
  19. 目标检测——RCNN与YOLO系列
  20. 培训:3天带你快速上手Kubernetes | 上海站

热门文章

  1. Eclipse 中 按 Ctrl+Shift+F 格式化代码时每行容纳的字符数
  2. android String.charAt的使用
  3. 解决VS2010复制代码中文乱码的问题
  4. c++学习笔记之指针
  5. mac下面安装mysql
  6. MySQL监控系统Lepus的搭建
  7. 【剑指offer】数字在排序数组中出现的次数
  8. Model compatibility cannot be checked because the database does not contain model metadata
  9. Android UI事件处理
  10. 小菜的CLR之旅(1)