基础部分

1、导入numpy模块

import numpy as np

2、查看numpy版本信息

print(np.__version__)

numpy的主要对象的多维数组Ndarray。Numpy中维度(dimensions)叫做轴(axis),轴的个数叫做秩。

3、通过列表创建一位数组

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

4、通过列表创建一个二维数组

np.array([(1, 2, 3),(4, 5, 6)])

5、创建全为0的二维数组

np.zeros((3,3))

6、创建全为1的三维数组

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

7、创建一维等差数组

np.arange(5)

8、创建二维等差数组

np.arange(6).reshape(2,3)

9、创建二维单位矩阵

np.eye(3)

10、创建等间隔一维数组(1到10之间,共6个数,数字之间间隔相同)

np.linspace(1, 10, num=6)

11、创建二维随机数组

np.random.rand(2,3)

下面说明一下random模块中的一些常用函数的用法

  • numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组。
  • numpy.random.randn(d0, d1, ..., dn):生成一个浮点数或N维浮点数组,取数范围:正态分布的随机样本数。
  • numpy.random.randint(low, high=None, size=None, dtype='l'):生成一个整数或N维整数数组,取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。
  • numpy.random.seed():使得随机数据可预测。当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数

12、依据自定义函数创建数组

np.fromfunction(lambda i, j: i +j, (5, 6))
fromfunction()方法可以根据矩阵的行号列号生成矩阵的元素。 例如创建一个矩阵,矩阵中的每个元素都为行号和列号的和。
import numpy as np

def func(i,j):

return i+j

a = np.fromfunction(func,(5,6))

第一个参数为指定函数,第二个参数为列表list或元组tuple,说明矩阵的大小

print(a)

输出:[[ 0. 1. 2. 3. 4. 5.]

[ 1. 2. 3. 4. 5. 6.]

[ 2. 3. 4. 5. 6. 7.]

[ 3. 4. 5. 6. 7. 8.]

[ 4. 5. 6. 7. 8. 9.]]

注意这里行号的列号都是从0开始的,func传进去的实参是矩阵的行列号

13、矩阵乘法运算

np.dot(A, B)

14、使用np.mat将数组定义为矩阵,直接使用*进行矩阵乘法运算

np.mat(A) * np.mat(B)

15、矩阵的转置

A.T

16、矩阵求逆

np.linalg.inv(A)

17、常用数学函数计算

np.sin(a)
np.exp(a)
np.sqrt(a) #开平方运算
np.power(a, 3) #立方根运算

18、数组的切片和索引

a = np.array([1, 2, 3, 4, 5])
a[0], a[-1]
a[0:2], a[:-1]

19、更改数组的形状(不改变原始数组)

a.reshape(2,3)

20、更改数组形状(改变原始数组)

a.resize(2, 3)

21、展平数组(将多维变成一维)

a.ravel()       a.flatten()
numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩;而numpy.ravel()返回的是视图(view),会影响(reflects)原始矩阵。

22、垂直拼合数组

np.vstack((a, b))

23、水平拼合数组

np.hstack((a, b))

24、沿轴分隔数组

np.hsplit(a, 3)  #沿横轴切分数组。a是ndarray数组,3表示切分为几份
np.vsplit(a,2) #沿纵轴切分数组。

25、返回数组最值

np.min(a, axis=num)
np.max(a, axis=num) np.argmax(a, axis=num) #返回最大值的索引
np.argmin(a, axis=num)

26、数组的统计特性计算

np.median(a, axis=num)  #指定维度的中位数
np.mean(a, axis= num) #算数平均值
np.average(a, axis= num) #加权平均值
np.var(a, axis = num) #方差
np.std(a, sxis = num) #标准差

进阶部分

27、创建一个5*5的二维数组,其中边界值为1,其余值为0

arr = np.ones((5,5))  #方法1
arr[1:-1,1:-1] = 0
z arr = np.ones((5,5)) #方法二
arr = np.pad(arr, pad_width=1, mode='constant', constant_values=0)

28、创建5*5的二维数组,并设置1,2 ,3 ,4落在其对角线下方

arr = np.diag(1+np.arange(4), k = -1)

29、创建一个0-10的一维数组。并将大于等于5的数置为0

arr1 = np.random.randint(0,10,10)
arr1[arr1 >= 5] = 0

29、找出两个一维数组中子相同的元素

 arr1 = np.random.randint(0,10,10)
arr2 = np.random.randint(0,10,10)
np.intersect1d(arr1,arr2)

30、打印今天、昨天、明天

yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D')
today = np.datetime64('today', 'D')
tomorrow = np.datetime64('today', 'D') + np.timedelta64(1, 'D')
print("yesterday: ", yesterday)
print("today: ", today)
print("tomorrow: ", tomorrow)

31、将数组排序

Z = np.random.random(10)
Z.sort()

32、将float32转化为整型

arr = np.arange(10, dtype = np.float32)
arr = arr.astype(np.int32, copy = False)

33、将随机二维数组按照第3列从上到下升序排列

arr = np.random.randint(0, 10, (5,5))
arr[arr[:,2].argsort()]

34、将二维数组的前两行进行交换

A = np.arange(25).reshape(5,5)
A[[0,1]] = A[[1,0]]

35、找出随机一维数组中出现频率最高的值

arr = np.random.randint(0,10,50)
np.bincount(arr).argmax()

36、对于给定的5*5二维数组,在其内部随机放置num个值为1的数

arr = np.zeros((5,5))
np.put(arr, np.random.choice(range(5*5), p, replace=False), 1)

37、获得二维数组点积结果的对角线数组

A = np.random.uniform(0,1,(3,3))
A = np.random.uniform(0,1,(3,3))
np.sum(A*B.T,axis = 1) #较快的方法
np.diag(np.dot(A, B)) #较慢的方法

38、设置数组中的各元素的值,使其保留两位小数

np.set_printoptions(precision=2)

39、计算两个数组之间的欧式距离

np.linalg.norm(b-a)

Numpy学习50例的更多相关文章

  1. (转)Python数据分析之numpy学习

    原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...

  2. Python数据分析之numpy学习

    Python模块中的numpy,这是一个处理数组的强大模块,而该模块也是其他数据分析模块(如pandas和scipy)的核心. 接下面将从这5个方面来介绍numpy模块的内容: 1)数组的创建 2)有 ...

  3. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  4. NumPy学习(让数据处理变简单)

    NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...

  5. numpy 学习笔记

    numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...

  6. Numpy学习1

    NumPy学习(1) 参考资料: http://www.cnblogs.com/zhanghaohong/p/4854858.html http://linusp.github.io/2016/02/ ...

  7. Numpy学习笔记(下篇)

    目录 Numpy学习笔记(下篇) 一.Numpy数组的合并与分割操作 1.合并操作 2.分割操作 二.Numpy中的矩阵运算 1.Universal Function 2.矩阵运算 3.向量和矩阵运算 ...

  8. 【大数据技术能力提升_2】numpy学习

    numpy学习 标签(空格分隔): numpy python 数据类型 5种类型:布尔值(bool),整数(int),无符号整数(uint).浮点(float).复数(complex) 支持的原始类型 ...

  9. Numpy学习之——数组创建

    Numpy学习之--数组创建 过程展示 import numpy as np a = np.array([2,3,9]) a array([2, 3, 9]) a.dtype dtype('int32 ...

随机推荐

  1. IIS 6 备忘

    用IIS7久了, 回到IIS6 总被搞混,所以记录下,以备忘记. 以下是转载和整合了他人的资源,原出处不详.   IIS Web 服务器的权限设置有两个地方,一个是 NTFS 文件系统本身的权限设置, ...

  2. 【转载】foreach+Control.Controls无法一次性移除所有子控件解决方法

    博客转载地址:http://www.mzwu.com/article.asp?id=2254 //在panel1中添加20个Button ; ; ; i <= ; i++) { ) row++; ...

  3. cucumber安装可能发生的错误

    1.--ignore-certification-errors 解决:可能是你的chromedriver版本与ruby版本不匹配,换一个版本 2.找不到文件,certification verify ...

  4. 2018.09.19 atcoder Snuke's Coloring(思维题)

    传送门 谁能想到这道题会写这么久. 本来是一道很sb的题啊. 就是每次选一个点只会影响到周围的九个方格,随便1e9进制就可以hash了,但是我非要作死用stl写. 结果由于技术不够高超,一直调不出来. ...

  5. 2018.07.31 POJ1741Tree(点分治)

    传送门 只是来贴一个点分治的板子(年轻时候写的丑别介意). 代码: #include<cstdio> #include<cstring> #include<algorit ...

  6. Shell 中expr的使用

    1.expr命令一般用于整数值,其一般格式为:expr argument operator argument一般的用法是使用expr做算术运算,如:[root@centos ~]# expr 10 + ...

  7. Tensorflow從源碼編譯

    从源代码构建 从源代码构建 TensorFlow pip 软件包并将其安装在 Ubuntu Linux 和 macOS 上.尽管这些说明可能适用于其他系统,但仅针对 Ubuntu 和 macOS 进行 ...

  8. POJ3045 Cow Acrobats 2017-05-11 18:06 31人阅读 评论(0) 收藏

    Cow Acrobats Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4998   Accepted: 1892 Desc ...

  9. Hdu1342 Lotto 2017-01-18 17:12 44人阅读 评论(0) 收藏

    Lotto Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submiss ...

  10. Toad 实现 SQL 优化

    It is very easy for us to implement sql tuning by toad.  We need to do is just give complex sql stat ...