1、np.array 的shape (2,)与(2,1)含义

ndarray.shape:数组的维度。为一个表示数组在每个维度上大小的整数元组。例如二维数组中,表示数组的“行数”和“列数”。

ndarray.shape返回一个元组(tuple),这个元组的长度就是维度的数目,即ndim属性。

一般情况下:
[1,2]的shape值(2,),意思是一维数组,数组中有2个元素(一级中括号,维度1)。

[[1],[2]]的shape值是(2,1),意思是一个二维数组,每行有1个元素(两级中括号,维度2)。

[[1,2]]的shape值是(1, 2),意思是一个二维数组,每行有2个元素(两级中括号,维度2)。

中括号的层级数就是ndarray的维度,也是shape元组的元素个数。

2、numpy 提取矩阵的某一行或某一列

a([[, , ],
[, , ],
[, , ]])

矩阵的某一行,a[0]即 [0, 1, 2] ,类型为narry,shape为(3,)

矩阵的某一列,a[:, 0]即 [1, 3, 6],类型为narry,shape为(3,)

3、特殊矩阵生成

3.1) arange  用法 :np.arange(0,10)  // 生成[0,1,2,3,4,5,6,7,8,9] 左开右闭不包括10

3.2) reshape 用法 np.arange(1,10).reshape((3,3))  从(3,4)改为(4,3)并不是对数组进行转置,而只是改变每个轴的大小,数组元素在内存中的位置并没有改变。新数组元素数量与原数组元素数量要相等。当一个参数为-1时,那么reshape函数会根据另一个参数的维度计算出数组的这个shape属性值。

3.3)随机数组生成   np.random.randint(0, 10, size=(3, 3))  随机生成(3*3)元素在0-10的数的二维数组

https://blog.csdn.net/lyb3b3b/article/details/74852737

3.4) np.array切片

3.5) 特殊矩阵的生成  np.ones((3,3))、np.zeros((3,3))、np.eye(1,1) [单位矩阵]; 还有 a=[1,2,3] np.diag(a) 是生成1,2,3 为对角线的方阵。

3.6)生成某一值的数组: np.full((3, 3), 7, dtype=np.float32)

4、数组和矩阵运算  np.multiply()、np.dot()和星号(*)

4.1) np.multiply()函数,点乘函数,为了矩阵能像数组那样对应位置相乘,给矩阵用的,数组也可以用,输出与相乘数组/矩阵的大小一致,对数组对矩阵都是如此.

A = np.arange(,).reshape(,)
array([[, ],
[, ]]) B = np.arange(,).reshape(,)
array([[, ],
[, ]]) np.multiply(A,B) #数组对应元素位置相乘
array([[ , ],
[ , ]])

矩阵场景:

np.multiply(np.mat(A),np.mat(B))     #矩阵对应元素位置相乘,利用np.mat()将数组转换为矩阵

matrix([[ ,  ],
[ , ]]) np.sum(np.multiply(np.mat(A),np.mat(B))) #输出为标量

4.2)dot,为了数组能像矩阵那样相乘,给数组用的,矩阵也可以用;矩阵乘法。dot就是用来做矩阵乘法的,将数组当作矩阵相乘,数组A的列数=数组B的行数。

4.3) * 该怎么乘就怎么乘

数组就表示数组乘法:数组X数组,直觉:对应位置相乘

矩阵就表示,矩阵乘法,矩阵a的行X矩阵b的列,a的列数!=b的行数,就报错

https://blog.csdn.net/shuiyuejihua/article/details/80148607

5 ndarray取最值及索引

#最值
np.max(a) #全局最大
np.max(a,axis=) #每列最大
np.max(a,axis=) #每行最大 #最值索引
np.argmin(a, axis=0) # 按每列求出最小值的索引
np.argmin(a, axis=1)  # 按每行求出最小值的索引

#python list
list_a_max_list = max(list_a) #返回最大值
max_index = list_a.index(max(list_a)) # 返回最大值的索引

 

python numpy笔记(重要)的更多相关文章

  1. python numpy笔记:给matlab使用者

    利用Numpy,python可以进行有效的科学计算.本文给过去常用matlab,现在正学习Numpy的人. 在进行矩阵运算等操作时,使用array还是matrix?? 简短的回答,更多的时候使用arr ...

  2. CS231n课程笔记翻译1:Python Numpy教程

    译者注:本文智能单元首发,翻译自斯坦福CS231n课程笔记Python Numpy Tutorial,由课程教师Andrej Karpathy授权进行翻译.本篇教程由杜客翻译完成,Flood Sung ...

  3. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  4. 在python&numpy中切片(slice)

     在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...

  5. Python机器学习笔记:使用Keras进行回归预测

    Keras是一个深度学习库,包含高效的数字库Theano和TensorFlow.是一个高度模块化的神经网络库,支持CPU和GPU. 本文学习的目的是学习如何加载CSV文件并使其可供Keras使用,如何 ...

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

    网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常 ...

  7. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  8. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

  9. Deep learning with Python 学习笔记(8)

    Keras 函数式编程 利用 Keras 函数式 API,你可以构建类图(graph-like)模型.在不同的输入之间共享某一层,并且还可以像使用 Python 函数一样使用 Keras 模型.Ker ...

随机推荐

  1. direct path read temp的处理方法

    Examine the SQL statement currently being run by the session experiencing waits to see what is causi ...

  2. Python(x,y) 的 FTP 下载地址

    因为 Python(x,y) 软件包托管在 Google code 上 https://code.google.com/p/pythonxy/,所以国内比较难下载. 这里推荐一个 FTP 下载地址:f ...

  3. 江苏省选2019Round1游记

    JSOI2019R1过去了. Day0 打板子.看白书. 晚上太热了,楼下还在打铁,睡不着. 折腾到好晚才勉强睡着. Day1 早上好困啊. 开T1.看起来T1的60分很可做的样子?5min打完了(为 ...

  4. [MicroPython]TPYBoardv102超全DIY案例一览

    TPYBoardv102是一款比较成熟和经典的MicroPython开发板,不仅适用于学习实验还能应用于大型的工业级开发,是MicroPython入门和研发的不二之选.下面我们就扒开v102的“层层外 ...

  5. zookeepeer使用java api

    一.引入依赖 <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper --> <dependen ...

  6. Java多线程编程核心技术(一)Java多线程技能

    1.进程和线程 一个程序就是一个进程,而一个程序中的多个任务则被称为线程. 进程是表示资源分配的基本单位,线程是进程中执行运算的最小单位,亦是调度运行的基本单位. 举个例子: 打开你的计算机上的任务管 ...

  7. 如何选择分布式事务形态(TCC,SAGA,2PC,补偿,基于消息最终一致性等等)

    各种形态的分布式事务 分布式事务有多种主流形态,包括: 基于消息实现的分布式事务 基于补偿实现的分布式事务(gts/fescar自动补偿的形式) 基于TCC实现的分布式事务 基于SAGA实现的分布式事 ...

  8. vim 正则非贪婪模式

    比如多匹配使用 .* 效果自然是贪婪模式,JS 的非贪婪很简单,是 .*? 即可,而 vim 不同,语法是 .\{-},注意 \ 转义.

  9. Cgroups 与 Systemd

    Cgroups 是 linux 内核提供的一种机制,如果你还不了解 cgroups,请参考前文<Linux cgroups 简介>先了解 cgroups.当 Linux 的 init 系统 ...

  10. Omi教程-组件通讯攻略大全

    组件通讯 Omi框架组建间的通讯非常遍历灵活,因为有许多可选方案进行通讯: 通过在组件上声明 data-* 传递给子节点 通过在组件上声明 data 传递给子节点 (支持复杂数据类型的映射) 父容器设 ...