python输入文字垂直输出_《利用python进行数据分析》学习笔记--Numpy(2)

---恢复内容开始---

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)))

1471713-20180826105555096-1827838275.png

轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第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])

---恢复内容结束---

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值