import numpy as np

创建一个矩阵

array = np.array([[1, 2, 3],
[3, 2, 1]])
print(array)
# [[1 2 3]
# [3 2 1]]
print('array dim:', array.ndim)  # 显示几维

shape 矩阵的形状

print('shape:', array.shape)  # 显示几行几列

设置元素的类型

a = np.array([1, 2, 3], dtype=np.float)
print(a.dtype)
# float64

有时候我们会生成矩阵

# ####### 生成全部为0的矩阵 #########
zero = np.zeros((3, 4), dtype=int)
print(zero)
# [[0 0 0 0]
# [0 0 0 0]
# [0 0 0 0]]
# ########生成全部为1的矩阵 ###############
ones = np.ones((3, 5))
print(ones) # [[1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1.]
# [1. 1. 1. 1. 1.]]
# ######### reshape #####################
_range = np.arange(20).reshape((5, 4))
print(_range)
#[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]
# [12 13 14 15]
# [16 17 18 19]]
# ########### 线段 ###################
linplace = np.linspace(0, 10, 6)
print(linplace)

线段矩阵,表示从0到10的闭区间也就是11个数,取6个数出来

2.矩阵的分隔

import numpy as np

a = np.array([[0, 1, 2],
[2, 3, 4]])
b = np.arange(0, 6).reshape([3, 2]) print(a)
print(b) print(a > 3) # 每个元素都判断一边是不是满足条件不满足返回false,满足返回trueprint(a+b) # 加法减法都一样print(a*b) # 乘法 对应位置相乘print('########################')print(np.sin(a)) # sin cos tan都可以(每个位置分别sin ...)print(np.dot(a, b)) # 矩阵相乘 ()# 还有一种表达方式为 a.dot(b) x = np.random.random([2, 4]) # 随机生成一个在0到1之间的x
print(x)
print(x.sum(axis=0)) # 全部元素的和 axis等于0在每一列寻找 等于1在每一行中寻找
print(x.max()) # 最大值
print(x.min()) # 最小值 print(np.argmin(a)) # 返回最小值的索引
print(a.argmax()) # 返回最大值的索引
print(np.average(a)) # 这样也可以返回平均值 但是这个不能a.median()
print(a.mean()) # 返回平均值 当然 np.argmean()也可以
print(np.median(a)) # 中位数 这个不能 a.median()
print(np.cumsum(a)) # 元素个数相同,每个元素是之前的累加
print(np.diff(a)) # 两个元素之间的差
print(np.nonzero(a)) # 返回两个数列分别表示行,列
print(np.sort(a)) # 排序
print(np.transpose(a)) # 转置
print(a.T) # 转置
print(np.clip(a, 5, 9)) # 所有小于五的数都设置为5 大于9的数变为9

3.矩阵的索引

# 什么a[0] a[0][1] for row in a 的我就不讲了,反正也会
# 其实a[0][1] 也可以表示为a[0, 1] for row in a:
print(row) # 打印行 for column in a.T:
print(column) # 打印列 # 最后依然说一些关于迭代输出的问题:
A = np.arange(3, 15).reshape((3, 4)) print(A.flatten())
# array([3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) for item in A.flat:
print(item)

4.矩阵的分割

import numpy as np

A = np.arange(12).reshape((3, 4))

X = np.split(A, 3, axis=0)  # 横这分割
x = np.vsplit(A, 3) # 横这分割
Y = np.split(A, 4, axis=1) # 列着分割
y = np.hsplit(A, 4) # 列着分割
print(type(A))
# <class 'numpy.ndarray'>
print(X)
# [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
print(type(X))
# <class 'list'> Z = np.array_split(A, 5, axis=1) # 不对等分割
print(A)
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
print(Z)
# [array([[0],
# [4],
# [8]]), array([[1],
# [5],
# [9]]), array([[ 2],
# [ 6],
# [10]]), array([[ 3],
# [ 7],
# [11]]), array([], shape=(3, 0), dtype=int32)]

5.矩阵的合并

import numpy as np
A = np.array([1, 2, 3])
print(A.shape) # 此时A不是矩阵属性,只是一个列表属性
# (3,)
print(A.T) # 所以转置无效
# [1 2 3]
# 需要变为矩阵在来转置
# ######### 把a变成矩阵
print(A[np.newaxis, :].shape)
# (1, 3)
B = np.array([5, 6, 7])
C = np.vstack((A, B)) # 上下合并
D = np.hstack((A, B)) # 左右合并
print(C)
# [[1 2 3]
# [5 6 7]]
print(D)
# [1 2 3 5 6 7]
print(C.T)
# [[1 5]
# [2 6]
# [3 7]]

python 《numpy》的更多相关文章

  1. 高阶NumPy知识图谱-《利用Python进行数据分析》

    所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片. 其他章 ...

  2. 《利用python进行数据分析》读书笔记 --第一、二章 准备与例子

    http://www.cnblogs.com/batteryhp/p/4868348.html 第一章 准备工作 今天开始码这本书--<利用python进行数据分析>.R和python都得 ...

  3. 《Python计算机视觉编程》

    <Python计算机视觉编程> 基本信息 作者: (美)Jan Erik Solem 译者: 朱文涛 袁勇 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:978711535 ...

  4. 《用 Python 学微积分》笔记 3

    <用 Python 学微积分>原文见参考资料 1. 16.优化 用一个给定边长 4 的正方形来折一个没有盖的纸盒,设纸盒的底部边长为 l,则纸盒的高为 (4-l)/2,那么纸盒的体积为: ...

  5. 《用 Python 学微积分》笔记 2

    <用 Python 学微积分>原文见参考资料 1. 13.大 O 记法 比较两个函数时,我们会想知道,随着输入值 x 的增长或减小,两个函数的输出值增长或减小的速度究竟谁快谁慢.通过绘制函 ...

  6. 《用 Python 学微积分》笔记 1

    <用 Python 学微积分>原文见参考资料 1. 1.多项式 f(x)=x3-5x2+9 def f(x): return x**3 - 5*x**2 + 9 print f(3) pr ...

  7. 《Python学习手册》(二)

    <Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...

  8. 「学习记录」《数值分析》第二章计算实习题(Python语言)

    在假期利用Python完成了<数值分析>第二章的计算实习题,主要实现了牛顿插值法和三次样条插值,给出了自己的实现与调用Python包的实现--现在能搜到的基本上都是MATLAB版,或者是各 ...

  9. python爬虫及结巴分词《攀登者》影评分析

    <攀登者>影评爬取及分析 0.项目结构 其中simkai.ttf为字体文件,Windows查看系统自带的字体 C:\Windows\Fonts 一.爬取豆瓣影评数据 # -*- codin ...

随机推荐

  1. pytest文档56-插件打包上传到 pypi 库

    前言 pytest 的插件完成之后,可以上传到 github,方便其他小伙伴通过 pip 源码安装.如果我们想通过 pip install packages 这种方式安装的话,需上传到 pypi 仓库 ...

  2. scp远程上传

      scp -P 22 /Users/mac/Downloads/VBoxGuestAdditions_5.2.12.iso root@192.168.1.210:/usr/local/src   s ...

  3. selenium 浏览器最大化

    from time import sleep from selenium import webdriver from selenium.webdriver.chrome.options import ...

  4. Vue3 来了,Vue3 开源商城项目重构计划正式启动!

    我打算用 Vue3 写一个商城项目,目前已经开始着手开发,测试完成后正式开源到 GitHub,让大家也可以用现成的 Vue3 大型商城项目源码来练练手. Vue 3.0 来了,我们该做些什么? Vue ...

  5. Java语言对对象采用的是引用传递还是按值传递?

    按值调用表示方法接收的是调用者提供的值:而按引用调用表示方法接收的是调用者提供的变量地址:一个方法可以修改传递引用所对应的变量值, 而不能修改传递值调用所对应的变量值: Java语言对对象采用的是引用 ...

  6. CSS常见标签类型

      块级(block): div,ul,li,h1~h6,p 独自占据一行 可设置宽高 行内(inline): span,a 占据所设置字体大小 不可设置宽高 上下margin值不会占用空间 行内块( ...

  7. .net npoi读word内容+目录

    最近在做读npoi文档存入搜索引擎,实现快速查询word文档中内容并展示,效果希望带有目录导航. 网上有很多例子都是读写操作,很肤浅没有具体读到想要的东西所以自己就写了个demo,也有微软提供的off ...

  8. SpringMVC的@InitBinder参数转换

    @Controller @RequestMapping("/index") public class IndexController { /** * 解决前端传递的日期参数验证异常 ...

  9. Linux系统搭建Hadoop集群

    一.环境说明 IP地址 主机名 备注 操作系统 192.168.92.11 hserver1 namenode Ubuntu 16.04 192.168.92.12 hserver2 datanode ...

  10. Educational Codeforces Round 95 (Rated for Div. 2)

    CF的Educational Round (Div.2),质量还是蛮高的. A: 水题 #include<cstdio> #include<algorithm> typedef ...