import numpy as np

Array 数组

print(np.zeros((2, 2)))  # [[0. 0.] [0. 0.]]
print(np.ones((2, 2))) # [[1. 1.] [1. 1.]]
print(np.full((2, 2), 7)) # [[7 7] [7 7]]
print(np.eye(2)) # [[1. 0.] [0. 1.]] print(np.random.random((2, 2))) # [[0.67151478 0.61234823] [0.85594251 0.0654221 ]]
a = np.array(np.arange(9).reshape(3, 3))
print(a) # [[0 1 2] [3 4 5] [6 7 8]] print(a[0, 0]) # 0
print(a[0][0]) # 0
print(type(a[0, 0])) # <class 'numpy.int64'>
print(type(a[0][0])) # <class 'numpy.int64'>
print(a[0, 0].shape) # ()
print(a[0][0].shape) # () print(a[1, :]) # [3 4 5]
print(a[1][:]) # [3 4 5]
print(type(a[1, :])) # <class 'numpy.ndarray'>
print(type(a[1][:])) # <class 'numpy.ndarray'>
print(a[1, :].shape) # (3,)
print(a[1][:].shape) # (3,)
a = np.array(np.arange(9).reshape(3, 3))
print(a) # [[0 1 2] [3 4 5] [6 7 8]] print(a[1, :]) # [3 4 5]
print(a[1:2, :]) # [[3 4 5]]
print(a[1, :].shape) # (3,)
print(a[1:2, :].shape) # (1, 3) print(a[:, 1]) # [1 4 7]
print(a[:, 1:2]) # [[1] [4] [7]]
print(a[:, 1].shape) # (3,)
print(a[:, 1:2].shape) # (3, 1)
a = np.array(np.arange(1, 7, 1).reshape(3, 2))
print(a) # [[1 2] [3 4] [5 6]]
print(a[[0, 1, 2], [0, 1, 0]]) # [1 4 5]
print(np.array([a[0, 0], a[1, 1], a[2, 0]])) # [1 4 5] a = np.array(np.arange(1, 13, 1).reshape(3, 4))
print(a) # [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]]
b = np.array([0, 2])
print(a[np.arange(1, 3, 1), b]) # [ 5 11]
a[np.arange(1, 3, 1), b] += 10
print(a) # [[ 1 2 3 4] [15 6 7 8] [ 9 10 21 12]]

bool 布尔

a = np.array(np.arange(1, 7, 1).reshape(3, 2))

print(a)  # [[1 2] [3 4] [5 6]]

bool_idx = (a > 2)

print(bool_idx)  # [[False False] [ True  True] [ True  True]]
print(a[bool_idx]) # [3 4 5 6]
print(a[a > 2]) # [3 4 5 6]

type 类型

x = np.array([1, 2])
print(x.dtype) # int64 x = np.array([1.0, 2.0])
print(x.dtype) # float64 x = np.array([1, 2], dtype=np.int8)
print(x.dtype) # int8

基本运算

x = np.array(np.arange(1, 5, 1).reshape(2, 2), dtype=np.float64)
y = np.array(np.arange(5, 9, 1).reshape(2, 2), dtype=np.float64) print(x) # [[1. 2.] [3. 4.]]
print(y) # [[5. 6.] [7. 8.]] print(x + y)
print(np.add(x, y)) # [[ 6. 8.] [10. 12.]] print(x - y)
print(np.subtract(x, y)) # [[-4. -4.] [-4. -4.]] print(x * y)
print(np.multiply(x, y)) # [[ 5. 12.] [21. 32.]] print(x / y)
print(np.divide(x, y)) # [[0.2 0.33333333] [0.42857143 0.5 ]] print(np.sqrt(x)) # [[1. 1.41421356] [1.73205081 2. ]]

矩阵乘法

x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, 8]]) v = np.array([9, 10])
w = np.array([11, 12]) print(v.dot(w))
print(np.dot(v, w)) # 219 print(x.dot(v))
print(np.dot(x, v)) # [29 67] print(x.dot(y))
print(np.dot(x, y)) # [[19 22] [43 50]]

sum 求和

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

print(x)  # [[1 2] [3 4]]
print(np.sum(x)) # 10
print(np.sum(x, axis=0)) # [4 6] Compute sum of each column
print(np.sum(x, axis=1)) # [3 7] Compute sum of each row

.T 转置

x = np.array([[1, 2], [3, 4]])
v = np.array([1, 2, 3]) print(x.T) # [[1 3] [2 4]] 2D array
print(v.T) # [1 2 3] 1D array

broadcasting 广播

x = np.array(np.arange(1, 13, 1).reshape(4, 3))  # [[ 1  2  3] [ 4  5  6] [ 7  8  9] [10 11 12]]
v = np.array([1, 0, 1])
y = np.empty_like(x) print(y) # [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]] for i in range(4):
y[i, :] = x[i, :] + v print(y) # [[ 2 2 4] [ 5 5 7] [ 8 8 10] [11 11 13]] x = np.array(np.arange(1, 13, 1).reshape(4, 3))
v = np.array([1, 0, 1])
vv = np.tile(v, (4, 1)) # [[1 0 1] [1 0 1] [1 0 1] [1 0 1]]
y = x + vv print(y) # [[ 2 2 4] [ 5 5 7] [ 8 8 10] [11 11 13]] y = x + v # broadcaste print(y) # [[ 2 2 4] [ 5 5 7] [ 8 8 10] [11 11 13]] v = np.array([1, 2, 3])
w = np.array([4, 5]) print(np.reshape(v, (3, 1)) * [0, 1, 2]) # [[0 1 2] [0 2 4] [0 3 6]] w has 3 numbers,so has 3 rows
x = np.array([[1, 2, 3], [4, 5, 6]]) print(x + v) # [[2 4 6] [5 7 9]]
print((x.T + w).T) # [[ 5 6 7] [ 9 10 11]]
print(x + np.reshape(w, (2, 1))) # [[ 5 6 7] [ 9 10 11]]
print(x * 2) # [[ 2 4 6] [ 8 10 12]]

numpy基础篇-简单入门教程2的更多相关文章

  1. numpy基础篇-简单入门教程4

    np.set_printoptions(precision=3),只显示小数点后三位 np.random.seed(100) rand_arr = np.random.random([2, 2]) n ...

  2. numpy基础篇-简单入门教程3

    np import numpy as np np.__version__ print(np.__version__) # 1.15.2 numpy.arange(start, stop, step, ...

  3. numpy基础篇-简单入门教程1

    np.split(A, 4, axis=1),np.hsplit(A, 4) 分割 A = np.arange(12).reshape((3, 4)) # 水平方向的长度是4 print(np.spl ...

  4. NumPy简单入门教程

    # NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体 ...

  5. 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

    本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ...

  6. GitHub这么火,程序员你不学学吗? 超简单入门教程 【转载】

    本GitHub教程旨在能够帮助大家快速入门学习使用GitHub. 本文章由做全栈攻城狮-写代码也要读书,爱全栈,更爱生活.原创.如有转载,请注明出处. GitHub是什么? GitHub首先是个分布式 ...

  7. Flyway 简单入门教程

    原文地址:Flyway 简单入门教程 博客地址:http://www.extlight.com 一.前言 Flyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式.Flyway 可以 ...

  8. .net 开源模板引擎jntemplate 实战演习:基础篇之入门

    一.简介 模板引擎是Web开发中非常重要的一环,它负责将页面上的动态内容呈现出最终的结果展现给前端用户,在asp.net mvc中,我们最熟悉的就是Razor了,作为官方的视图引擎(视图引擎不等同于模 ...

  9. 【ASP.NET 基础】WCF入门教程一(什么是WCF)?

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

随机推荐

  1. 问题集锦 ~ PS

    #画正圆 按住鼠标左键 + shift (+alt 从中心扩散) #透明背景 选中选区,图层转换为智能对象,栅格化,按 delete #抠图 魔术棒,套索工具 #填充选区颜色 Ctrl+Del #填充 ...

  2. 马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象

    马云谈AI:未来10-15年传统制造业的痛苦将远超今天的想象 “未来10到15年,传统制造业面临的痛苦将会远远超过今天的想象,企业如果不能从规模化.标准化向个性化和智慧化转型,将很难生存下去.” 9月 ...

  3. React+Webpack+ES6环境搭建(自定义框架)

    引言 目前React前端框架是今年最火的.而基于React的React Native也迅速发展.React有其独特的组件化功能与JSX的新语法,帮助前端设计有了更好的设计与便捷,而React Nati ...

  4. KOA 框架

    const koa = require('koa'); const static = require('koa-static'); const server = new koa(); // 静态文件 ...

  5. POJ3764 The xor-longest Path(字典树)

    题意 给你一棵树,n个节点,n-1条边每条边i都有一个权值wi.定义任意两点间的权值为:这两点间的路径上的所有边的值的异或.比如a点和b点间有i,j,k三条边,那么ab两点间的权值为:wi^wj^wk ...

  6. [洛谷P1920]成功密码

    题目大意:给你n和x($n\leq 10^{18},0<x\leq 1$),要你求$\sum_{i=1}^n\frac{x^i}{i}$. 解题思路:首先n大到要用long long存,暴力肯定 ...

  7. BZOJ 5394 [Ynoi2016]炸脖龙 (线段树+拓展欧拉定理)

    题目大意:给你一个序列,需要支持区间修改,以及查询一段区间$a_{i}^{a_{i+1}^{a_{i+2}...}}mod\;p$的值,每次询问的$p$的值不同 对于区间修改,由线段树完成,没什么好说 ...

  8. 重载和const形参

    1.int lookup(string p); 2.int lookup(const string p);//同1 3.int lookup(string *);//传入一个指针,指针指向string ...

  9. 【转】Java集合间的相互转换

    下面代码演示了List<-->数组.List<-->Set.数组<-->Set.Map将键转化为Set.Map将值转化为Set.Map将值转化为List等集合常用转 ...

  10. hdu 1166 敌兵布阵 (线段树单点更新)

    敌兵布阵                                                         Time Limit: 2000/1000 MS (Java/Others)  ...