目录
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、将多维数组转成一维
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的,则返回这两个最小值得坐标。
数组中等于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()
numpy.tolist()
numpy.astype(numpy.int)
numpy.dtype #查看数据类型
获取数组中数量最多的元素,也就是最频繁的那个元素,方法有很多,下面是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)
获取数组中数量最多的元素,也就是最频繁的那个元素,方法有很多,下面是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()
默认从小到大排序,加上 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()
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()
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'
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)
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