---恢复内容开始---
1、通用函数——ufunc(数组函数)
numpy包里面有许多的简单函数
一元通用函数
np.abs---计算整数、浮点数、复数的绝对值
fabs---非负数的绝对值
sqrt---元素平方根
square---各元素的平方
exp---指数e的x次方
.
.
二元通用函数
add(加) subtract(减) multiply(乘) divide(除)
floor_divide(丢弃余数的整除)
power(A的B次方,A是第一个数组中的元素,B是第二个数组中的元素)
max(最大值) fmax(忽略NaN, 求最大值)Not a Number
min fmin
mod(求模,除法中的余数)
copysign (第二个数组中的值的符号复制给第一个数组中的值)
greater > greater_equal >= 均最终产生布尔型数组
less < less_equal<=
equal = not_equal !=
logical_and logical_or logical_xor 且 或 非
2、利用数组进行数据分析
首先,矢量化是指用数组表达式代替python的普通循环。
np.wehere用于根据一个数组产生新的数组
arr = np.random.randn(4,4)
arr
返回为
array([[0.61332224, -1.05117097, -0.84696004, -0.27137368],
[0.61668765, -0.28892021, -0.3351271 , 0.20804892],
[1.38186831, 0.84161578, 0.34944678, 1.32217962],
[-0.16234266, -1.39231172, -0.11728331, 0.63589553]])
np.where(arr>0,2,-2)
返回为
array([[2, -2, -2, -2],
[2, -2, -2, 2],
[2, 2, 2, 2],
[-2, -2, -2, 2]])
另外where还可以嵌套使用
np.where(cond1&cond2,0
np.where(cond1,1,
np.where(cond2,2,3)))
轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。
其他,数组统计函数为
std---标准差 var---方差
argmin---最小值索引
comsum---所有元素的累计和
comprod---所有元素的累计积
sum函数可以对布尔型数组中的True值进行计数
arr= np.random.randn(50)
(arr>0).sum()
返回值为25
3、Numpy数组排序
一维数组可以直接sort就可以完成
arr = np.random.randn(5)
arr.sort
arr
返回值为
array([1.20801059, -0.1505957 , -0.1863048 , 0.39777751, -0.67243568])
多维数组可利用将轴号传给sort进行排序
arr = np.random.randn(5,3)
arr
返回为
array([[-2.32465573, -0.8331435 , -0.25726053],
[-0.74449026, -0.4840514 , -0.10254945],
[-0.25760022, -0.01386315, 0.35368015],
[ 0.33300364, 0.58523588, 1.87840659],
[ 1.04487588, 1.53477932, 2.12223762]])
arr.sort(0) 返回为
array([[-0.25726053, -2.32465573, -0.8331435],
[-0.10254945, -0.4840514 , -0.74449026],
[0.35368015, -0.25760022, -0.01386315],
[0.58523588, 1.87840659, 0.33300364],
[1.53477932, 2.12223762, 1.04487588]])
sort(0)----按列方向排序
sort(1)----按行方向排序
排序最直接的应用就是找到一组数据的各分位数
arr = np.random.randn(1000)
arr.sort()
arr[int(0.5 * len(arr))]#中位数
返回值为0.033359695414764835
4、numpy 的集合逻辑
numpy 的集合运算中最常用的就是np.unique,主要用来找出数组中的唯一值并且返回已完成排序的结果。
ints = np.array([3,4,5,4,5,3,4,3,5,6])
np.unique(ints)
返回为
array([3, 4, 5, 6])
字符型数组同样可以
其他的集合运算包括
unique(x)---计算x中的唯一元素,并有序返回
intersect1d(x,y)---计算x,y中的公共元素,并有序返回
union1d(x,y)---计算x,y的并集,并有序返回
in1d(x,y)---得到一个表示“x的元素是否包含于y”的布尔型数组
setdiff1d(x,y)---元素在x中且不在y中
setxor1d(x,y)---异或 在一个数组中,但不同时在两个数组中的元素
5、numpy的文件输入输出
写入数据 np.save
arr = np.arange(10)
np.save('some_array',arr)
如果无扩展名,则会默认加.npy
读取数据 np.load
np.load('some_array.npy')array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.savez 能够将多个数组保存到一个压缩文件
各个数组以关键字参数传入
np.savez('arr_new',a = arr, b=arr)
arr1= np.load('arr_new.npz')
arr1['a']
返回为
array([0,1, 2, 3, 4, 5, 6, 7, 8, 9])
---恢复内容结束---