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. svn离线安装以及配置,管理python自动化脚本

    1.使用源码安装,自己make和install,难度还挺大的,改用对应iso中的rpm安装包来安装 2.iso中的rpm包安装,会存在rpm包之间的依赖的关系 3.这种依赖关系,可以处理,仍然在iso ...

  2. Spring Security(二十):6.2.3 Form and Basic Login Options

    You might be wondering where the login form came from when you were prompted to log in, since we mad ...

  3. 【LOJ 2145】「SHOI2017」分手是祝愿

    LOJ 2145 100pts 这题...BT啊 首先我们很容易想出\(dp(msk)\)表示现在灯开关的情况是\(msk\),期望通过多少步走到终结态. 很明显\(dp(msk)=\frac{1}{ ...

  4. Ubuntu18.04安装Tensorflow

    1.Ubuntu安装Python3.6: 首先拉取远程仓库 sudo add-apt-repository ppa:jonathonf/python-3.6 更新源 sudo apt-get upda ...

  5. Apache Commons Codec的Base64加解密库

    下载地址:http://commons.apache.org/proper/commons-codec/download_codec.cgi import org.apache.commons.cod ...

  6. Git超实用总结,再也不怕记忆力不好了

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯工蜂发表于云+社区专栏 Git 是什么? Git 是一个分布式的代码管理容器,本地和远端都保有一份相同的代码. Git 仓库主要是 ...

  7. Mysql绿色版安装和遇到的问题

    MySQL绿色版安装整套流程,http://www.cnblogs.com/LiuChunfu/p/6426918.html,按这个教程装完后,用cmd命令窗口也能登陆.但是用mysql-font登不 ...

  8. H5 字体属性补充

    04-字体属性补充 abc我是段落 <!DOCTYPE html> <html lang="en"> <head> <meta chars ...

  9. BZOJ1283 序列 网络流区间覆盖模型

    就是区间覆盖模型的费用流版. 区间覆盖模型

  10. Python—time模块介绍

    time 模块 在平常的代码中,我们常常需要与时间打交道.在Python中,常用的与时间处理有关的模块就包括:time,datetime,下面来介绍time模块. 在开始之前,首先要说明几点: 一.在 ...