numpy入门到放弃



datacamp:numpy知识点



3.look though 这个np.array




4.  随机创建data


i



目录


1-7. 入门

8.    创建数组

9.    np.reshape()

10.   将多维数组转为一维数组

11.  算术运算

12. numpy 中数组和矩阵的区别



numpy入门

1. numpy的主要操作对象是同类型的多维数组。

它是一个由正整数元组索引,元素类型相同的表(通常元素是数字)。在 numpy维度被称为 axes, axes 的数量称为 rank。

2. numpy的数组类是ndarray,也可以叫array


3.ndarray.ndim

数组的 axes (维数)数值大小。

4.ndarray.shape

数组的维数,这是由每个维度的大小组成的一个元组。对于一个 n行 m 列的矩阵。shape 是 (n, m)。由 shape 元组的长度得出 rank 或者维数 ndim。

5.ndarray.size

数组元素的个数总和,这等于 shape 元组数字的乘积。

6.ndarray.dtype

在数组中描述元素类型的一个对象.它是一种可以用标准的python类型创建和指定的类型。eg:numpy.int32,numpy.int16,numpy.float64……

7.ndarray.itemsize

数组中每个元素所占字节数。

NumPy 官方快速入门教程(译) - 掘金


8.创建数组


8.1 用array创建一维数组

创建的数组类型是从原始序列中的元素推断出来的。


8.2 用array创建高维数组


数组类型是从原始序列中的元素推断出来的


数组的类型也能够在创建时具体指定

8.3 用占位符创建

8.3.1 np.zeros()

创建一个全是0的数组


Q:3维要怎么理解?2个面? 3维矩阵?

ps: np.zeros_like()生成相同形状的全0数组




8.3.2 np.ones

创建全是1的数组


8.3.3 np.empty()

empty 创建一个随机的数组。默认创建数组的类型是 float64



8.4 用arrange创建数组

np.arrange() 来表示取值范围


8.5 用np.linspace 来创建数组 等差数列

当 arange 的参数是浮点型的,由于有限的浮点精度,通常不太可能去预测获得元素的数量。出于这个原因,通常选择更好的函数 linspace,他接收我们想要的元素数量而不是步长作为参数。

类似arange,linspace从[start , stop ] 生成num个数,Num个数间隔相等。(默认为float)

linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)


8.6 np.random.rand()随机生成取值在(0,1)的数组


0~1的随机数


8.7 np.random.randit() 产生随机整数

numpy.random.randint(low, high=None, size=None, dtype='l')


8.8 np.random.choice ()

# 参数意思分别 是从a 中以概率P,随机选择3个, p没有指定的时候相当于是一致的分布

a1 = np.random.choice(a=5, size=3, replace=False, p=None)

print(a1)

# 非一致的分布,会以多少的概率提出来

a2 = np.random.choice(a=5, size=3, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])

print(a2)

# replacement 代表的意思是抽样之后还放不放回去,如果是False的话,那么出来的三个数都不一样,如果是True的话, 有可能会出现重复的,因为前面的抽的放回去了。

https://blog.csdn.net/qfpkzheng/article/details/79061601

8.9 numpy.random.sample

返回一个随机数组,取值在(0,1)之间

numpy.random.sample(size=None)

参数:

size: int or tuple of ints, optional 可以是整数或者元组

Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn

如果size输入的是元组形式,返回的是多维数组

numpy.random.sample — NumPy v1.16 Manual

8.10  numpy.random.randn()

numpy.random.randn(d0,d1,…,dn)

randn函数返回一个或一组样本,具有标准正态分布

dn表格每个维度

返回值为指定维度的array


ps:标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)

https://blog.csdn.net/u012149181/article/details/78913167

8.11 np.logspace()

创建等比数列

8.12 np.fromstring()


9. 修改数组的形状

9.1 np.reshape() 

将一维的数据转为多维的


2个3行4列的数组

9.2 数组的转置transposed


9.3 np.resize()

reshape函数返回修改的形状,而 resize方法直接修改数组本身。



10.将多维数组转为一维数组np.ravel()     np.flatten()       np.squeeze()

numpy中的ravel()、flatten()、squeeze()都有将多维数组转换为一维数组的功能,区别:

ravel():如果没有必要,不会产生源数据的副本

flatten():返回源数据的副本

squeeze():只能对维数为1的维度降维

另外,reshape(-1)也可以“拉平”多维数组


11.numpy中的算数计算

11.1 四则运算

+’,’-‘,’*’,’/’运算都是基于全部的数组元素的


11.1.1 * vs np.dot() vs np.multiply()  不同 见13

https://blog.csdn.net/zenghaitao0128/article/details/78715140


11.2 开根号/指数  universal functions  

还包含 sin cos 



11.3 += 和 *=

直接在原数组上做修改,不会创建新数组。


11.4 聚合运算

还有mean() median()


ps: numpy.ptp(a, axis=None, out=None)   返回最大和最小值之差


11.5 二元ufunc

11.6 数组的集合运算


《利用python进行数据分析》


11.7 numpy.linalg() 常用计算函数




12. numpy 中数组和矩阵的区别

1. Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。

2. 在numpy中matrix的主要优势是:相对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。

3. matrix 和 array 都可以通过objects后面加.T 得到其转置。但是 matrix objects 还可以在后面加 .H f得到共轭矩阵, 加 .I 得到逆矩阵。

4. 相反的是在numpy里面arrays遵从逐个元素的运算,所以array:c 和d的c*d运算相当于matlab里面的c.*d运算。而矩阵相乘,则需要numpy里面的dot命令 。

https://blog.csdn.net/wyl1813240346/article/details/79806207


13. * vs np.dot() vs np.multiply()  区别

数组的 * 操作不像其他的矩阵语言。矩阵乘法通过 dot 函数进行模拟

13.1 np.multiply()用法

数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致


13.1.1 数组


13.1.2 矩阵


13.2 np.dot() 用法

对于秩为1的数组,执行对应位置相乘,然后再相加;

对于秩不为1的二维数组,执行矩阵乘法运算;超过二维的可以参考numpy库介绍。


13.2.1 一维数组

13.2.2 二维数组


13.3 * 的用法

对数组执行对应位置相乘

对矩阵执行矩阵乘法运算


13.3.1 数组 *

13.3.2 矩阵


14. 索引,切片和迭代

14.1 一维数组

一维数组可以被索引,切片和迭代,就像列表和其他Python序列一样。




14.2 二维数组



14.3 多维数组 三维数组 用... 查询数组



15. 数组的组合拼接

使用hstack 横向拼接

使用vstack 纵向拼接



16.数组的拷贝

不同的数组对象可以分享相同的数据。view 方法创建了一个相同数据的新数组对象。 浅拷贝

想要真正的复制一份a给b,可以使用copy.  深拷贝



17.numpy中的函数



18. numpy中的矩阵

矩阵与数组有不同,矩阵最多是2维的


18.1 矩阵的创建

18.2 矩阵的乘法

np.multiply()

(*)


18.3 矩阵的转置 .T()

18.4 矩阵求逆nlg.inv()


18.5 特征向量

ps:忘记特征向量怎么求了 

先占着坑

pass


19. np.meshgrid()用法

meshgrid(*xi, **kwargs)

功能:从一个坐标向量中返回一个坐标矩阵


20.np.cumsum()

numpy.cumsum(a, axis=None, dtype=None, out=None)

axis=0,按照行累加。

axis=1,按照列累加。

axis不给定具体值,就把numpy数组当成一个一维数组。


自动转换成一维数组,按照行累加

21.np.where()用法

21.1 np.where(condition, x, y)

满足条件(condition),输出x,不满足输出y。



21.2 np.where(condition)

只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。


21.3 利用where 修改数组的值


22.利用set去重 




23. np.concatenate

numpy.concatenate((a1, a2, ...), axis=0, out=None)




24. np.meshgrid()

meshgrid(*xi, **kwargs)

从一个坐标向量中返回一个坐标矩阵

参数:

x1,x2...,xn:数组,一维的数组代表网格的坐标。

indexing:{'xy','ij'},笛卡尔坐标'xy'或矩阵'ij'下标作为输出,默认的是笛卡尔坐标。

sparse:bool类型,如果为True,返回一个稀疏矩阵保存在内存中,默认是False。

copy:bool类型,如果是False,返回一个原始数组的视图保存在内存中,默认是True。如果,sparse和copy都为False,将有可能返回一个不连续的数组。而且,如果广播数组的元素超过一个,可以使用一个独立的内存。如果想要对这个数组进行写操作,请先拷贝这个数组。

返回值:x1,x2,....,xn:ndarray(numpy数组)

numpy中的meshgrid函数 - 修炼之路 - CSDN博客





reference:

NumPy 官方快速入门教程(译) - 掘金

python 科学计算 — numpy 学习笔记 - 细语呢喃

https://blog.csdn.net/sinat_29957455/article/details/78825945

https://blog.csdn.net/feng_jlin/article/details/82790746

https://www.cnblogs.com/massquantity/p/8908859.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354