NumPy基础

1. 创建ndarray
import numpy as np

data1=[2,1,3,2,5,6,2.4]
arr1 = np.array(data1)

data2=[[2,1,3,2,5,6,2.4],[2,1,3,2,5,6,2.4]]
arr2 = np.array(data2)

range_arr = np.arange(10)
zeros_arr = np.zeros((3,5))
ones_arr = np.ones((5,3))
empty_arr = np.empty((2,4,2))
eye_arr = np.eye(4)
2.ndarray数据类型

arr.shape
arr.dtype
显式转换dtype: float_arr = arr.astype(np.float64)
其中浮点数转换为整数是截断式

3.索引和切片

注意:数组切片是原始数组的视图,视图上任何修改都会直接修改源数组,如果需要的是数据的副本,,那么需要显示的进行复制操作:例如 arr[3,5].copy()。

索引 arr2d[1][1] 和 arr2d[1,1] 是等价的
切片 arr2d[:2,1:] 二维数组的前两行(除第一列)的后几列

布尔型索引 、花式索引(复制到新数组)

4. np.where(x,a,b)

相当于三元表达式 a if x else b
x,a,b 可以是等长度的数组
可以多层嵌套使用

np.where(cond1&cond2,0,
                       np.where(cond1,1,
                                         np.where(cond2,2,3)))
5.统计函数
方法 描述
sum 对数组中的全部或某轴向的元素求和
mean 算数平均值
std 标准差
var 方差
min 最小值
max 最大值
argmin 最小值的索引
argmax 最大值的索引
cumsum 所有元素的累计和
cumprod 所有元素的累计积
6.排序
排序
>>> arr=np.random.randn(8)
>>> arr
array([-0.24714293,  0.16531488,  0.70580089, -1.06400186,  0.81947489,
        0.31703525,  1.26607519, -0.13315898])
>>> arr.sort()
>>> arr
array([-1.06400186, -0.24714293, -0.13315898,  0.16531488,  0.31703525,
        0.70580089,  0.81947489,  1.26607519])
>>> 

对于多维数组,sort(a) a代表的是轴向,如下图所示,对于一个二维数组,0代表列项排序,1代表行项排序
7.逻辑函数
布尔型数组的方法
>>> import numpy as np
>>> boools=np.array([False,True,True])
>>> boools.any()
True
>>> boools.all()
False
>>> 
方法 说明
unique(x) 计算x中的唯一元素,并返回有序结果
intersect1d(x,y) 计算x和y中的公共元素,并返回有序结果
union1d(x,y) 计算x和y的并集,并返回有序结果
in1d(x,y) 得到一个表示“x的元素是否包含于y”的布尔数组
setdiff1d(x,y) 集合的差,x-y
setor1d(x,y) 集合的对称差,即x∪y - x∩y
8.存取
>>> import numpy as np
>>> arr = np.arange(8)
>>> arr
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.save('myarr',arr)
>>> np.load('myarr.npy')
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.savez('myarrzip.npz',a=arr,b=arr)
>>> myzip=np.load('myarrzip.npz')
>>> myzip['a']
array([0, 1, 2, 3, 4, 5, 6, 7])

存到文本文件
np.savetxt()
np.loadtxt('name.txt',delimiter=',')

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容