常用函数

  • a.max(axis=0) a.max(axis=1) a.argmax(axis=1) : 每列的最大值(在行方向找最大值)、每行的最大值(在列方向找对大致)、最大值的坐标
  • sum()求和、mean()平均值、var() 方差、std() 标准差 : 用法与max类似
  • numpy.random.uniform(low=0,high=1,size) 随机浮点数[low, high)。size可以是整数或者元组。默认是1
  • np.tile(a,(1,2)):行上重复1次,列上重复两次。
  • arr.argsort() : 返回从小到大的序列号,返回值是python的list

  • sorted(iterable, cmp=None, key=None, reverse=False) : 对所有可迭代对象排序。保留原对象,返回新的对象。reverse=False表示从小到大

  • list.sort(cmp=None, key=None, reverse=False) : 对列表排序,直接对原列表操作

  • operator模块提供的itemgetter函数用于获取对象的哪些维的数据

a = [5,8,2,7,21]
b = operator.itemgetter(0)
b(a) b = operator.itemgetter(1,0)
b(a) ###
5
(8,5)
  • 使用reload(KNN)更新修改的模块
import importlib
importlib.reload(KNN)
  • list.extend(list1)list.append(list1):??????????????????????????

  • python字典的遍历

    • for i in dict <==> for i in dict.keys() : 按key遍历
    • for value in d.values() : 按值遍历
    • for key,value in d.items() : 按键值对遍历
  • 函数名.变量名 用这种方式定义的变量,可以在任意位置访问,但是访问的方式必须是:函数名.变量名。直接访问变量名是无效的。当然必须要在函数执行过后,变量才能生效

def fun():
fun.var1 = 1
fun.var2 = 2
print(fun.var1)
# print(var2) # 报错 fun()
print(fun.var2)

矩阵

  • eye(n) : 创建单位矩阵
  • empty(shape, dtype = float, order = 'C'/'F') : 创建未初始化的数组
  • zeros(shape, dtype=float, order='C'/'F') : 创建全0数组;zeros((2,))zeros((2,1))完全不一样的 !!!!!!!!!
  • ones(shape, dtype=float, order='C'/'F') : 创建全1数组
  • full(shape, num) : 创建形状为shape的数组,用num填充
  • ndarray arange(start=0, stop, step=1, dtype) : 等差数组。arange(stop)表示[0,stop); arange(start,stop)表示[start, stop); arange(start, stop, step)表示步长。

运算

+ - * / % **n : 矩阵的对应位置元素的加、减、乘、除、取余、n次方

  • 矩阵乘法(二维数组时是当成矩阵乘法; 一维数组时计算的是内积,返回一个数值而不是数组): a.dot(b)
  • 矩阵转置: a.transpose() 或者 a.T
  • 矩阵求逆: np.linalg.pinv(a) 或者 a.I
  • 矩阵除法: np.linalg.solve(matA, matB)

随机数

np.random.uniform

np.random.uniform(low=0.0, high=1.0, size=None)

默认返回0~1之间的float随机数

  • low、high:float,可以是数组类型
  • size: int, 数字n表示n的随机数; 元组shape表示形状为shape的矩阵

np.random.random && np.random.random_sample

np.random.random(size)

返回0~1之间的float随机数,size指定形状

np.random.rand

np.random.rand(d0, d1, …, dn)

默认返回0~1之间的float随机数,参数表示矩阵的维度,没有参数就返回随机数

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

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

返回标准正太分布(均值为0,方差为1)。默认返回一个flaot随机数

numpy.random.normal(loc=0.0, scale=1.0, size=None)

numpy.random.normal(loc=0.0, scale=1.0, size=None)

返回一个由size指定形状的数组,数组中的值服从 μ=loc,σ=scale 的正态分布。默认返回一个随机数

randint()

randint(low, high=None, size=None, dtype=’l’)

返回整型随机数,low和high表示范围,如果不指定high,则返回0~low之间的随机数,size指定矩阵形状,dtpe可选int和int32

shuffle() 和 permutation()

都是打乱数组的顺序,但是,shuffle()会改变原来数组的顺序,而permutation()返回一个新对象

  • shuffle(list): 可以是list或者二维数组。按照第一个索引洗牌
  • permutation(x): x整数时,返回一个不大于x的随机排列的数组(就是从0~x,随机排列),当X是list时,跟shuffle一样

Tips

  • 列表使用前需初始化,直接给不存在的数组赋值会报错: data[0] = 1
  • dict.keys()[0]会报错,必须使用list()转型 ==> list(dict.keys())[0]
  • np.log(矩阵) 表示对矩阵中的所有元素计算对数,但是,math.log(矩阵)会报错,报错信息如下:

    TypeError: only size-1 arrays can be converted to Python scalars

  • a = range(1, 26); del a[0] a是range对象,可以访问,但是不可以删除。可以转型之后再使用 a = list(range(1, 26))
  • 不可以一边用for循环遍历list一边删除list中的元素!!!!!!!!! ,他会一边删除,一边跳,根本删不完。。。正确操作是 使用while删除元素:
    i = 0
while i < len(wordList):
if wordList[i] in stopwordList:
del wordList[i]
else:
i += 1
  • zip() 将多个list打包成元组列表。用在for里非常方便
a = [1,2,3,4]
b = [2,3,4,5,6]
c = [4,5,6,7,8,9] ziped = zip(a,b,c)
for a,b,c in ziped:
print (a, b, c)
  • assert condition "promot" 断言,当condition为False时会报异常,同时给出prompt作为提示
  • a[a<6] 似乎可以返回所有满足条件的索引,然后把所有满足条件的元素返回
a = np.array([1,2,3,4,5,6,7,8])
b = np.array([2,3,4,4,4,4,4,4,4,4,5,6,7,8,9])
a = a[ b < 6 ]
  • 对于 (1, )(1,1)的差别:
    a = np.array([1])       # (1, )
    b = np.array([[1]]) # (1,1)

报错

operands could not be broadcast together with shapes (100000,) (100000,2)

出现维度错误,一般是由于矩阵乘法导致的。很坑的地方在于,下面两个矩阵竟然是可以乘的

a = np.arange(start=1, stop = 5, step=1)
b = np.arange(start=1, stop = 3, step=1)
b = b.reshape((2,1))
print(a.shape, " ", b.shape)
print(a * b)
(4,)   (2, 1)
[[1 2 3 4]
[2 4 6 8]]

TODO

  • python集合运算
  • python正则表达式
  • 正态分布

numpy常用知识点备忘的更多相关文章

  1. numpy常用知识点备忘(2)

    x.ravel() 和 x.flatten() : 将多为数组降维到1维.ravel()返回元素的引用(对象不一样,但是元素是引用),flatten()返回新的元素. np.meshgrid(x, y ...

  2. metasploit 常用命令备忘

    metasploit 常用命令备忘    MSFconsole Commands-------------------------------------24show exploits 查看所有exp ...

  3. Linux基础之常用基本命令备忘

    Linux基础之常用基本命令备忘 PWD   查询当前所在Linux上的位置 /         根目录 CD(change directory)切换目录  语法 CD /(注意添加空格)   LS ...

  4. Webstorm常用快捷键备忘(Webstorm入门指南)

    WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE ...

  5. sublime 常用快捷键备忘

    转一篇sublime常用的快捷键备忘 sublime常用快捷键 选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本 ...

  6. Webstorm常用快捷键备忘

    WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE ...

  7. Axure常用操作备忘

    目录 前言 技巧 边框重合 复制对象文本居中 复制粘贴样式 文本自适应 给图形添加连接点 导出图片无空白 前言 下面列出Axure画图过程中曾经遇到过的问题,备忘一下,避免别人也走弯路,法布施一下~ ...

  8. CentOS常用命令备忘

    1. 查看进程 ps -a 杀掉进程 kill PID 2. 添加计划任务crontab -e 例如:30 21 * * * service httpd restart 每天21:30重启apache ...

  9. TF版网络模型搭建常用代码备忘

    本文主要介绍如何搭建一个网络并训练 最近,我在写代码时经常碰到这样的情况,明明记得代码应该怎么写,在写出来的代码调试时,总是有些小错误.原因不是接口参数个数不对,就是位置不对.为了节约上网查找时间,现 ...

随机推荐

  1. Mybatis介绍、使用IDEA快速入门

    1. Mybatis概念 MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发 JavaEE三层架构:表现层.业务层.持久层 JDBC 与 MyBatis 对比: MyBatis 本是 A ...

  2. Vue3 Transition 过渡效果之基于 CSS 过渡

    介绍 Transistion 路由组件的切换.动态组件的切换.v-if 条件渲染组件以及 v-show 显示组件原本是没有任何过渡(CSS 动画)效果的.然而,Vue 的内置组件<Transit ...

  3. 线性代数 | Jordan 标准型的笔记

    内容概述: 把方阵 A 的特征多项式 \(c(λ)=|λE-A|\) 展开成 \(c(λ)=\sum_ia_i\lambda^i\) 的形式,然后使用神乎其技的证明,得到 \(c(A)=O\),特征多 ...

  4. Android 自动取色并设置沉浸式状态栏

    Android 自动取色并设置沉浸式状态栏 - Stars-One的杂货小窝 最近在进行产品的优化,也是研究了下沉浸式状态栏的实现方法及自动取色,记录一下笔记 设置沉浸式状态栏 1.添加依赖 这里,是 ...

  5. 「学习笔记」单调队列优化dp

    目录 算法 例题 最大子段和 题意 思路 代码 修剪草坪 题意 思路 代码 瑰丽华尔兹 题意 思路 代码 股票交易 题意 思路 代码 算法 使用单调队列优化dp 废话 对与一些dp的转移方程,我们可以 ...

  6. OpenJudge1.5.17 菲波那契数列

    17:菲波那契数列 总时间限制: 1000ms 内存限制: 65536kB 描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和. 给出一个正整数k,要求 ...

  7. 在 C# CLR 中学习 C++ 之了解 extern

    一:背景 在 CLR 源码中有很多的 extern 和 extern "C" 这样的关键词,比如下面这些代码: extern size_t gc_global_mechanisms ...

  8. flutter系列之:flutter中常用的GridView layout详解

    目录 简介 GridView详解 GridView的构造函数 GridView的使用 总结 简介 GridView是一个网格化的布局,如果在填充的过程中子组件超出了展示的范围的时候,那么GridVie ...

  9. VMware Component Manager服务无法启动

    近日,给一台Windows 2016上的vCenter打补丁,系统重启后,发现vmware的很多服务无法启动了.这是一台老版本的vcenter,虽然已经2021年了,但是它还管理着一些很老的ESX,比 ...

  10. Dapr 证书过期了怎么办? 别慌,有救!

    一.背景 Dapr 默认证书有效时间是1年,证书过期后就不能执行相关控制面和数据面的交互了,如下图: 二.查看证书有效时间 通过dapr mtls expiry 看到期时间,具体参见命令https:/ ...