numpy常用操作汇总

目录

1、找出array中的最大值,最小值及对应坐标

2、数组中满足某一条件的元素个数

3、numpy转python

4、numpy转换类型astype

5、python获取数组中最多的元素

6、numpy获取数组中最多的元素

7、对数组中按关键字排序

8、判断dict是否存在指定键值

9、python 三元表达式

10、python中的axis=0,axis=1

11、将多维数组转成一维


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

返回最大值,及坐标。

numpy常用操作汇总_第1张图片

若计算最小值,有两个最小值为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:", 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

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] 

参考手册: http://old.sebug.net/paper/books/scipydoc/numpy_intro.html

你可能感兴趣的:(未分类,numpy,python,数据分析,算法)