numpy常用操作

numpy常用操作
1、找出array中的最大值,最小值及对应坐标
import numpy as np
def test():
a = np.array([1.2, 5, 3, 8, 9, 10, 5, 1, 2, 1, 7])
print("a:", a)
print("a-max:", a.max())
r = np.where(a == a.max())
print("r:", r)
print("r[0][0]:", r[0][0])
test()
返回最大值,及坐标。

若计算最小值,有两个最小值为1的,则返回这两个最小值得坐标。


2、数组中满足某一条件的元素个数
数组中等于1的元素个数:
def test():
a = np.array([1.2, 5, 3, 10, 5, 1, 1, 7])
print("a:", a)
print("count of a==1:", np.sum(a == 1))
test()


3、numpy转python
numpy .tolist()

4、numpy转换类型astype
numpy.astype(numpy.int)
numpy.dtype #查看数据类型

5、python获取数组中最多的元素
获取数组中数量最多的元素,也就是最频繁的那个元素,方法有很多,下面是3种最简单的:
1)用max函数
sample = [1,2,3,3,3,4,5,5]
max(set(sample), key=sample.count)
2)用collections包的Counter函数
data = Counter(sample)
data.most_common(1)[0][0]
# data.most_common(1)[0][1] # 就是相应的最高频元素的频次
3)用statistics包的mode函数
mode(sample)

6、numpy获取数组中最多的元素
获取数组中数量最多的元素,也就是最频繁的那个元素,方法有很多,下面是3种最简单的:
使用np.bincount()和np.argmax()函数来实现。
np.bincount()可以把数组中出现的每个数字,当做index,数字出现的次数当做value来表示。
np.argmax()可以返回数组中最大值的index。
所以经过变换,可以得到出现次数的最大值。
import numpy as np
def test():
x = np.array([2, 3, 1, 1, 4, 6, 1, 3])
print("x:", x)
bin_cnt = np.bincount(x)
print("bin_cnt:", bin_cnt)
max_value = np.argmax(bin_cnt)
print("max_value:", max_value)
test()


7、对数组中按关键字排序
默认从小到大排序,加上 reverse=True从大到小排。
def test():
a = [
{"idx": 9, "num": 12},
{"idx": 2, "num": 32},
{"idx": 8, "num": 12},
{"idx": 4, "num": 2},
{"idx": 5, "num": 34}
]
a.sort(key=lambda k: (k.get('num', 0)), reverse=True)
print a
test()


8、判断dict是否存在指定键值
python中有两种方法可以判断指定的键值是否存在,一种是通过字典对象的方法 has_key 判断,另外一种是通过in方法
d={'site':'http://www.jb51.net','name':'jb51','is_good':'yes'}
#方法1:通过has_key
print d.has_key('site')
#方法2:通过in
print 'body' in d.keys()

9、python 三元表达式
Python提到了对于类似C语言的三元条件表达式condition ? true_part : false_part,虽然Python没有三目运算符(?:),但也有类似的替代方案,那就是true_part if condition else false_part。
[python] view plain copy
>>> 1 if True else 0
1
>>> 1 if False else 0
0
>>> "Fire" if True else "Water"
'Fire'
>>> "Fire" if False else "Water"
'Water'

10、python中的axis=0,axis=1
axis=0表述列
axis=1表述行

import numpy as np
a = np.array([[1, 2], [3, 4]])
sum0 = np.sum(a, axis=0)
sum1 = np.sum(a, axis=1)
print(sum0)
print(sum1)


11、将多维数组转成一维
a = [[1,3],[2,4],[3,5]]
b = np.array(a)
b.flatten()
=>[1, 3, 2, 4, 3, 5]


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值