栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Python】numpy学习笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Python】numpy学习笔记

reshape
import numpy as np
#生成8行4列的元素
arr=np.arange(12).reshape((2,6))
print(arr)
输出:
[[ 0  1  2  3  4  5]
 [ 6  7  8  9 10 11]]
arr=np.arange(24).reshape((2,3,4))
print(arr)
输出:
“”“
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
”“”

对二维数组选取行和列

import numpy as np
arr=np.arange(32).reshape((8,4))
print(arr)
print(arr[[1,5,7,2]][:,[0,3,1,2]])
"""
4  7  5  6
20 23 21 22
28 31 29 30
8  11 9  10
"""
数组转置和轴兑换

转置就是重塑数组的一种特殊形式
使用array.transpose或者 array.T都能达到相同的效果
轴与轴之间的数据转换

import numpy as np
arr=np.random.randn(4,4)
print(arr)
arr_1=np.where(arr>0,2,-2)
print(arr_1)
arr_2=np.where(arr>0,2,arr)
print(arr_2)
条件逻辑转数组

np.where等同于x if condition else y矢量化的一个版本
np.where用于根据一个数组产生一个新的数组

import numpy as np
arr=np.random.randn(4,4)
arr_1=np.where(arr>0,2,-2)
print(arr_1)
arr_2=np.where(arr>0,2,arr)
print(arr_2)
输出:
[[ 0.43381604  0.32422037 -1.47085834  0.7658069 ]
 [ 0.87574729 -1.06108865  1.02846833  0.54714308]
 [-0.01142063 -1.07268708 -0.80541467 -0.56147169]
 [-0.16371619  0.53085074 -0.63674942 -0.40037197]]
[[ 2  2 -2  2]
 [ 2 -2  2  2]
 [-2 -2 -2 -2]
 [-2  2 -2 -2]]
[[ 2.          2.         -1.47085834  2.        ]
 [ 2.         -1.06108865  2.          2.        ]
 [-0.01142063 -1.07268708 -0.80541467 -0.56147169]
 [-0.16371619  2.         -0.63674942 -0.40037197]]
import numpy as np
x_arr=[1,2,3]
y_arr=[0.1,0.2,0.3]
condition=np.array([True,False,True])
rs=[x if c else y for x,y,c in zip(x_arr,y_arr,condition)]
print(rs)

r=np.where(condition,x_arr,y_arr)
print(r)
数学运算
import numpy as np
arr=np.random.randn(4,4)
print(arr)
print(arr.mean())#数组中所有值的平均值
print(np.mean(arr))#另一种写法
print(arr.sum())#求和
print(arr.std())
###参数 axis表示在一个指定的轴上进行运算
print(arr.mean(axis=1))#计算轴1上的平均值
print(arr.sum(axis=0))#计算轴0上的和
排序
import numpy as np
arr=np.random.randn(4)
print(arr)
arr.sort()
print(arr)

多维数组的排序

import numpy as np
arr=np.random.randn(4,4)
print(arr)
arr.sort(1)
#传递轴号,按轴来进行排序
# 1 表示按行排序 默认轴号等于1 即按行进行排序
print(arr)
numpy的文件操作
"""
numpy可以读写磁盘上的文本数据或者是二进制数据
主要应用的函数就是np.save和np.load,
默认情况下数据是以未压缩的原始二进制格式保存在扩展名为.npy的文件中;
"""
import numpy as np
# arr=np.arange(10)
# print(arr)
# np.save("any_array_file_name",arr)
arr=np.load("any_array_file_name.npy")
print(arr)

保存成压缩文件

import numpy as np
arr=np.arange(10)
np.savez('any_arr',a=arr)
#保存成一个压缩文件,数组以关键字参数的形式传入
rs=np.load('any_arr.npz')['a']
print(rs)

保存成txt文件

import numpy as np
arr=np.arange(10)
np.savetxt("array",arr,delimiter=",")# 这就是保存了一个文本文件,分隔符指定为,号
rs=np.loadtxt("array",delimiter=",")
print(rs)
线性代数
import numpy as np
#线性代数
"""
dot 矩阵的乘法运算
trace 计算对角线元素的和
det 计算矩阵的行列式
eig 计算方阵的本征值和本征向量
inv 计算方阵的逆
"""
x=np.array([[1,2,3],[4,5,6]])# dim-2*3
y=np.array(([[1,2],[3,4],[5,6]]))# dim-3*2
rs=x.dot(y)
print(rs)
print(x.trace())
print(y.trace())
demo:随机漫步
import numpy as np
import matplotlib.pyplot as plt
# 随机漫步
position=0
walk=[position]
steps=1000
for i in range(steps):
    step= 1 if np.random.randint(0,2) else -1
    position+=step
    walk.append(position)
plt.plot(walk)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号