Numpy

作者: haokeed | 来源:发表于2019-05-07 12:38 被阅读0次

windows下安装

pip install numpy

官方文档:https://docs.scipy.org/doc/numpy/user/quickstart.html

引入

import numpy as np

1.创建

# 一维数组
dat=[6,7,8,0,1]
arr1=np.array(dat)
print(arr1)

# 多维数组
dat2=[[1,2,3,4],[5,6,7,8]]
arr2=np.array(dat2)
print(arr2)
image.png
# dtype 数据类型
arr2.dtype

# shape 属性
arr2.shape


# 创建时可以指定数据类型
arr3=np.array(dat2,dtype=np.int64)
print(arr3)
print(arr3.dtype)
dat3=[6,7.5,9,0,1]
arr4=np.array(dat3)
print(arr4)
print(arr4.dtype)

# astype 类型转换
arr4.astype(np.int64)

# ones 生成全1的数组
np.ones(10)

# zeros
np.zeros(10)

# 二维
np.zeros((3,6))

image.png

2.运算

# 数组和标量之间的运算
nd=np.array([1,2,3,4])
print(nd)
print(nd*2) # 乘法1
print(nd*nd) # 自己*自己
print(nd+nd) # 相加
print(1/nd) # 倒数
image.png

3.索引和切片

# 基本的索引和切片
# arange:range函数的数组版
np.arange(10)

nd1=np.arange(1,20,2) # 起点1 最大值20 步长2
print(nd1)


# 切片
print(nd1[5])
print(nd1[2:5]) # 索引未2,3,4 不包括5

# 索引赋值
nd1[2:5]=10 # 这部分元素都被赋值为10
print(nd1)
nd1[2:5]=[2,3,4] # 3个元素分别赋值 这里3个元素 如果单个赋值 不可以只有2个 
print(nd1)

dat3=[[1,2,3,4,5],[2,3,4,5,6]]
nd2=np.array(dat3)
print(nd2)
nd2[0]=1 # 二维数组的第一个数组中的元素全部赋值为1 
print(nd2)
print(nd2[0,3]) # 第一行第四列的焦点
image.png

4.花式索引

# 花式索引
nd=np.arange(32)
print(nd)

# reshape
nd1=np.reshape(nd,(8,4)) # 把数组变成8行4列的数组的二维数组
print(nd1)

print(nd1[[1,2,3]]) # 花式取多个索引 分别取索引未1,2,3的行

# 选取多行 多列交叉处的元素
print(nd1[[1,5,7,2],[0,3,1,2]]) # 取1,0 5,3 7,1 2,2这几个元素
# 获取矩形区域:方法1
print(nd1[[1,5]][:,[1,2]]) # 取行索引为1和5 列索引为1和2的 的交叉点集合
# 获取矩形区域:方法2 np.ix_
print(nd1[np.ix_([1,5,7,2],[0,3,1,2])]) # 取行索引为1 5 7 2  列索引为 0 3 1 2的交叉点集合
image.png

5.通用函数ufunc

# 通用函数ufunc
arr=np.arange(10)
print(arr)

# 开根号
print(np.sqrt(arr)) # 针对每个元素开根号

# 相加
b=np.arange(3)
c=np.array([2,-1,4])
print(b)
print(c)
print(np.add(b,c)) # 各自相同索引的元素相加

# 求最大值
print(np.maximum(b,c)) # 取各自相同索引下的最大的元素 形成新的数组
image.png

5.常用数学和统计方法

# 常用数学和统计方法

# 一维数组
arr=np.random.randn(9) # 随机生成9个元素的数组
print(arr)
# 最小值
print(arr.min())
#最大值
print(arr.max())
# 平均值
print(arr.mean())
# 求和
print(arr.sum())
# 排序
arr.sort()
print(arr)

# 二维数组
arr1=np.random.randn(5,3)
print(arr1)
# 最小值
print(arr1.min()) # 所有行列中的最小值
# 最大值
print(arr1.max()) # 所有行列中的最大值
# 平均值
print(arr1.mean()) # 所有的平均值
# 排序
arr1.sort() # 每行各自进行排序
print(arr1)
# 按列排序
arr1.sort(axis=0) # 每行各自进行排序
print(arr1)

# 等分端点
print(np.linspace(0,10,2)) # 0-10中  2代表分为两个端点
print(np.linspace(0,10,5)) # 0-10中  5代表5个端点 把他分为4等分
print(np.linspace(0,10,11)) # 0-10之间 中间差值一样的11个数 包行 0 和10
image.png
image.png

6.线性代数

# 线性代数
x=np.array([[1,2,3],[4,5,6]])
print(x)

y=np.array([[6,23],[-1,7],[8,9]])
print(y)

# 乘法  线性代数特点:x行数必须等于y列数
print(x.dot(y)) #用x去左乘y

from numpy.linalg import inv
m=np.array([[4,2],[3,1]])
print(m)
# 逆矩阵
print(inv(m))
image.png

7.随机数生成

# 随机数生成
from numpy import random

#normal 
rArray=random.normal(size=(4,4)) #normal 随机生成矩阵,服从正太分布
print(rArray)

#randit 产生给定上下限范围内的随机选取整数
print(random.randint(0,2))

i=0
while i<20:
    print(random.randint(0,2),end= ' ')
    i=i+1
image.png

相关文章

  • 科学计算库numpy的执行示例

    numpy1 numpy2 numpy3 numpy4

  • numpy中的常量

    Constants 正无穷 numpy.inf numpy.Inf numpy.Infinity numpy.in...

  • NumPy学习资料

    Numpy 中文资料 NumPy 中文文档 NumPy 中文用户指南 NumPy 中文参考手册

  • Numpy基础

    安装Numpy Numpy Numpy属性 ndim:纬度 shape:行数和列数 size:元素个数 Numpy...

  • Numpy和Pandas基本操作速查

    """ numpy 基本操作 """'''安装 Numpy 的方法:pip install numpy''''''...

  • numpy 基础

    numpy 基础 导入numpy 版本 np常用方法 numpy.array 的基本属性 numpy.array ...

  • Numpy入门

    1、熟悉 numpy 的基础属性 2、numpy 创建 array 3、numpy的基础运算 4、numpy索引 ...

  • 学习:biopython的安装

    安装Numpy 因为使用biopython需要numpy的支持,所以需要先安装numpy。安装numpy过程如下:...

  • Numpy

    Numpy中文文档 # 基本语法 ``` import numpy myText = numpy.genfromt...

  • numpy运算

    numpy的与运算 numpy 中 argsort() numpy 中的布尔索引

网友评论

      本文标题:Numpy

      本文链接:https://www.haomeiwen.com/subject/kcpsoqtx.html