import numpy as np

'''
一.算术运算
元素级
1.标量 加减乘除 数组(元素级:位置对应) 自增和自减 通用函数
2.数组 +-*/ 数组 (元素级)
3.条件和布尔运算 a>0.5 满足的True,不满足False a[a>0.5]:满足条件的组成新的数组 非元素级
1.矩阵的积 dot(A,B) A.dot(B)
2.聚合函数 【求和:a.sum(),最值:a.max(),平均值:a.mean(),标准差:a.std()】 二.数组操作
1.连接数组【同矩阵类似】
1.1垂直扩展(入栈) vstack(A,B)
1.2水平扩展(入栈) hstack(A,B) 2.数组切分
2.1垂直切分 vsplit()
2.2水平切分 hsplit()
2.3 np.split(H,(1,3),axis=0) split切分,需要指定轴
三.常用概念
1.副本或视图:数组运算 和 操作 返回的不是副本就是视图 但是赋值运算不会创建副本【a b = a b在运用时时在调用a,没有副本,所以a改变了,b的调用值夜改变】可以用copy()创建副本
2.向量化
3.广播机制 【数组兼容:两数组的每一维等长或者其中一个数组是一维的】【两原则:1.缺失的维度补上1 2.较小数组扩充维度,使之与大数组维度相同】
4.结构化数组
5.数组文件的读写 '''
A = np.zeros((3,3)) ##3行3列
B = np.ones((2,3)) ##2行3列
C = np.transpose(B) ##转置
D = np.vstack((A,B))
E = np.hstack((A,C))
F = np.transpose((D))
H = np.vstack((E,F)) ##1.1垂向入栈
print(D)
'''
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]
[1. 1. 1.]
[1. 1. 1.]]
'''
##1.2横向入栈
print(E)
'''
[[0. 0. 0. 1. 1.]
[0. 0. 0. 1. 1.]
[0. 0. 0. 1. 1.]]
''' print(H)
'''
[[0. 0. 0. 1. 1.]
[0. 0. 0. 1. 1.]
[0. 0. 0. 1. 1.]
[0. 0. 0. 1. 1.]
[0. 0. 0. 1. 1.]
[0. 0. 0. 1. 1.]]
'''
##2.1垂直切分 np.vsplit(H,2)均分为两部分
[A1,A2,A3] = np.vsplit(H,(1,3)) ## 按行索引1,3,分开,分成3部分
print(A1)
print(A2)
print(A3) ##2.2水平切分
[B1,B2,B3] = np.hsplit(H,(1,3)) ## 按列索引1,3,分开,分成3部分
print(B1)
print(B2)
print(B3) ##2.3 np.split(H,(1,3),axis=0) split切分,需要指定轴 ### 广播机制
a = np.arange(16).reshape((4,4))
b = np.arange(4)
print(a.shape)
print(b.shape)
'''
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
[0 1 2 3] (4, 4)
(4,) 为缺失的维度补上1 (4,1)
''' c = a+b
print(c)
'''
[[ 0 2 4 6]
[ 4 6 8 10]
[ 8 10 12 14]
[12 14 16 18]] 一维数组+二维数组,其中一个数组是一维,满足兼容条件。可以应用广播机制。
第二个原则:缺失元素都用已有元素填充
[0,1,2,3]
填充后
[[0,1,2,3]
[0,1,2,3]
[0,1,2,3]
[0,1,2,3]] ''' ###两个数组形状和维度不同
m = np.arange(6).reshape(3,1,2)
n = np.arange(6).reshape(3,2,1)
print(m)
print(n)
print(m+n)
'''
[[[0 1]] [[2 3]] [[4 5]]]
[[[0]
[1]] [[2]
[3]] [[4]
[5]]] m数组:第二维1 扩充到2 已有元素填充
[[[0 1],[[0 1]] [[2 3],[2 3]] [[4 5],[4 5]]] n数组 :第3维 1 扩充到2 已有元素填充
[[[0,1],[1,1]] [[2,2],[3,3]] [[4,4],[5,5]]] m+n:
[[[ 0 1],[ 1 2]] [[ 4 5],[ 5 6]] [[ 8 9],[ 9 10]]]
'''

最新文章

  1. C++ 取得系统当前时间
  2. c#描述异常处理语句try、catch、finally执行时的相互关系
  3. JavaWeb学习之什么JSP、JSP是如何工作的、JSP语言(各种指令和九大内置对象)、EL表达式简单使用(5)
  4. Android Studio使用教程
  5. 【BZOJ】2321: [BeiJing2011集训]星器(数学+特殊的技巧)
  6. CryptAPI 数字签名 与 Openssl 验证签名
  7. hdu 2004 成绩转换
  8. 安装Hadoop系列 — eclipse plugin插件编译安装配置
  9. Apache-Tika解析Word文档
  10. c++学籍管理系统
  11. Redis 高可用集群
  12. jquery easyui datagrid设置可编辑行的某个列不可编辑
  13. One Person Game(zoj3593+扩展欧几里德)
  14. wpf Assembly.LoadFile dll GetType 反射 抛异常 不具有由 URI 识别的资源。
  15. python爬取百度贴吧帖子
  16. 玩DNF开启NVIDIA独显的方法
  17. oracle 学习blogs
  18. Ionic学习资源
  19. ThinkPHP5 union分页
  20. vmware创建centos虚拟机

热门文章

  1. 18、NumPy——矩阵库(Matrix)
  2. k8s应用配置详解
  3. 分布式自增ID算法-Snowflake详解
  4. 并行开发 1.Parallel
  5. JVM(3) 之 内存分配与回收策略
  6. Windows 程序设计--(六)键盘
  7. SpringCloud Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded
  8. vue开发 - 根据vue-router的meta动态设置html里title标签内容
  9. C语言实现读取文件所有内容到字符串
  10. idea报错Diamond types are not supported at this language level