博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python Numpy 笔记
阅读量:6489 次
发布时间:2019-06-24

本文共 2370 字,大约阅读时间需要 7 分钟。

这次机器学习的作业可以用第三方库了,果断抛弃 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)>>> aarray([[ 0,  1,  2,  3,  4],       [ 5,  6,  7,  8,  9],       [10, 11, 12, 13, 14]])>>> a.shape(3, 5)>>> a.ndim2>>> a.dtype.name'int64'>>> a.itemsize8>>> a.size15>>> type(a)
>>> b = np.array([6, 7, 8])>>> barray([6, 7, 8])>>> type(b)

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 )>>> barray([0, 1, 2, 3])>>> c = a-b>>> carray([20, 29, 38, 47])>>> b**2array([0, 1, 4, 9])>>> 10*np.sin(a)array([ 9.12945251, -9.88031624,  7.4511316 , -2.62374854])>>> a<35array([ True, True, False, False], dtype=bool)>>> A = np.array( [[1,1],...             [0,1]] )>>> B = np.array( [[2,0],...             [3,4]] )>>> A*B                         # elementwise productarray([[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))>>> aarray([[ 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)>>> barray([[ 0,  1,  2,  3],       [ 4,  5,  6,  7],       [ 8,  9, 10, 11]])>>>>>> b.sum(axis=0)                            # sum of each columnarray([12, 15, 18, 21])>>>>>> b.min(axis=1)                            # min of each rowarray([0, 4, 8])

Indexing, slicing and iterating

转载地址:http://egauo.baihongyu.com/

你可能感兴趣的文章
Parat-基于kali2018的远程管理工具
查看>>
ES6(正则扩展)
查看>>
从零玩转jQuery-核心函数和静态方法
查看>>
8月3日科技联播:新型VR头盔可令盲人重获光明 ,联通阿里成立合资企业“云粒智慧”...
查看>>
Jeknins的Pipline方式构建任务
查看>>
Python全栈 项目(电子词典、协程、pdb调试)
查看>>
(周期计划-7)常用集合的源码分析:ArrayList
查看>>
“分叉并商品化”,GitLab 和 Elastic 炮轰 AWS 的开源方法
查看>>
MKVToolNix v33.0.0 发布,MKV 视频编辑工具软件
查看>>
Egg 2.19.0 发布,阿里开源的企业级 Node.js 框架
查看>>
CentOS7.4安装Gitlab10.5.1及汉化
查看>>
Virtualbox以及VWare在Win10下的不兼容
查看>>
Github上如何在Fork到的开源项目中提交Pull requests?
查看>>
Java单向链表反转
查看>>
一些开发遇到的"小问题",你能答对多少?
查看>>
面对前车之鉴的AR,现在的VR要做些什么?
查看>>
自然语言理解势头正强劲,可总还是缺点啥
查看>>
【python图像处理】给图像添加透明度(alpha通道)
查看>>
区块链与微服务天生是一对
查看>>
VDI市场:探寻企业影子IT风险来源|
查看>>