sum函数:
没有axis参数表示全部相加,axis=0表示按列相加,axis=1表示按照行的方向相加
- >>> import numpy as np
- >>> a=np.sum([[0,1,2],[2,1,3]])
- >>> a
- 9
- >>> a.shape
- ()
- >>> a=np.sum([[0,1,2],[2,1,3]],axis=0)
- >>> a
- array([2, 2, 5])
- >>> a.shape
- (3,)
- >>> a=np.sum([[0,1,2],[2,1,3]],axis=1)
- >>> a
- array([3, 6])
- >>> a.shape
- (2,)
argsort函数返回的是数组值从小到大的索引值
>>> x = np.array([3, 1, 2])
>>> np.argsort(x) #按升序排列
array([1, 2, 0])
>>> np.argsort(-x) #按降序排列
array([0, 2, 1])
>>> x[np.argsort(x)] #通过索引值排序后的数组
array([1, 2, 3])
>>> x[np.argsort(-x)]
array([3, 2, 1])
另一种方式实现按降序排序:
>>> a = x[np.argsort(x)]
>>> a
array([1, 2, 3])
>>> a[::-1]
array([3, 2, 1])
operator.itemgetter函数:
operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。
a = [1,2,3]
>>> b=operator.itemgetter(1) //定义函数b,获取对象的第1个域的值
>>> b(a)
2
>>> b=operator.itemgetter(1,0) //定义函数b,获取对象的第1个域和第0个的值
>>> b(a)
(2, 1)
要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。
进行多级排序,即先跟第三个域进行排序,再根据第二个域排序(反过来了)
sorted函数:
Python内置的排序函数sorted可以对list或者iterator进行排序该函数原型为:sorted(iterable,cmp,key,reverse)
参数解释:
(1)iterable指定要排序的list或者iterable;
(2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如:
students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据成员来排序,代码可以这样写:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
sorted(students, key=lambda student : student[2])
(3)key为函数,指定取待排序元素的哪一项进行排序,函数用上面的例子来说明,代码如下:
sorted(students, key=lambda student : student[2])
key指定的lambda函数功能是去元素student的第三个域(即:student[2]),因此sorted排序时,会以students所有元素的第三个域来进行排序。
有了上面的operator.itemgetter函数,也可以用该函数来实现,例如要通过student的第三个域排序,可以这么写:
sorted(students, key=operator.itemgetter(2))
sorted函数也可以进行多级排序,例如要根据第二个域和第三个域进行排序,可以这么写:
sorted(students, key=operator.itemgetter(1,2))
即先跟句第二个域排序,再根据第三个域排序。
(4)reverse参数是一个bool变量,表示升序还是降序排列,默认为false(升序排列),定义为True时将按降序排列。
get函数:
当我们获取字典里的值的时候,一个是通过键值对,即dict['key'],另一个就是dict.get()方法。
例如: view plain copy
- >>> dict = {'a':'AA', 'b':'BB', 'c':'CC'}
- >>> dict['a']
- 'AA'
- >>> dict.get('a')
- 'AA'
get()方法语法:
dict.get(key, default=None)key -- 字典中要查找的键。
default -- 如果指定键的值不存在时,返回该默认值。
例如:
- >>> dict.get('d','error')
- 'error'
iteritems函数:items方法是可以将字典中的所有项,以列表方式返回。(python3语句)
iteritems方法(python2语句)与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器。 copy
- >>> d = {'1':'one', '2':'two', '3':'three'}
- >>> x = d.items()
- >>> x
- [('1', 'one'), ('3', 'three'), ('2', 'two')]
- >>> type(x)
- <type 'list'>
- >>> y = d.iteritems()
- >>> y
- <dictionary-itemiterator object at 0x025008A0>
- >>> type(y)
- <type 'dictionary-itemiterator'>
strip函数和split函数:
实际上strip是删除的意思;而split则是分割的意思。因此也表示了这两个功能是完全不一样的,strip可以删除字符串的某些字符,而split则是根据规定的字符将字符串进行分割。
1、strip函数
声明:s为字符串,rm为要删除的字符序列
s.strip(rm) 删除s字符串中开头、结尾处,位于 rm删除序列的字符
s.lstrip(rm) 删除s字符串中开头处,位于 rm删除序列的字符
s.rstrip(rm) 删除s字符串中结尾处,位于 rm删除序列的字符
注意:
(1)当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' ')
(2)这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。
例如,
1
2
3
4
5
>>> a
=
' 123'
>>> a
' 123'
>>> a.strip()
'123'
(2)这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。
例如,
1
2
3
4
5
>>> a
=
'123abc'
>>> a.strip(
'21'
)
'3abc'
>>> a.strip(
'12'
)
'3abc'
2、split函数
说明:
Python中没有字符类型的说法,只有字符串,这里所说的字符就是只包含一个字符的字符串!!!
这里这样写的原因只是为了方便理解,仅此而已。
(1)按某一个字符分割,如‘.'
1
2
3
4
5
6
>>>
str
=
(
'www.google.com'
)
>>>
print
str
www.google.com
>>> str_split
=
str
.split(
'.'
)
>>>
print
str_split
[
'www'
,
'google'
,
'com'
]
(2)按某一个字符分割,且分割n次。如按‘.'分割1次
1
2
3
>>> str_split
=
str
.split(
'.'
,
1
)
>>>
print
str_split
[
'www'
,
'google.com'
]
(3)split()函数后面还可以加正则表达式,例如:
1
2
3
>>> str_split
=
str
.split(
'.'
)[
0
]
>>>
print
str_split
www
split分隔后是一个列表,[0]表示取其第一个元素;
1
2
3
4
5
6
>>> str_split
=
str
.split(
'.'
)[::
-
1
]
>>>
print
str_split
[
'com'
,
'google'
,
'www'
]
>>> str_split
=
str
.split(
'.'
)[::]
>>>
print
str_split
[
'www'
,
'google'
,
'com'
]
[::-1]按反序列排列,[::]安正序排列
append函数:2. append()
方法向列表的尾部添加一个新的元素。只接受一个参数。
3. extend()
方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。
**********************************************************************************************************************
append()用法示例:
>>> mylist = [1,2,0,'abc']
>>> mylist
[1, 2, 0, 'abc']
>>> mylist.append(4)
>>> mylist
[1, 2, 0, 'abc', 4]
>>> mylist.append('haha')
>>> mylist
[1, 2, 0, 'abc', 4, 'haha']
>>>
**********************************************************************************************************************
extend()用法示例:
>>> mylist
[1, 2, 0, 'abc', 4, 'haha']
>>> mylist.extend(['lulu'])
>>> mylist
[1, 2, 0, 'abc', 4, 'haha', 'lulu']
>>> mylist.extend([aaa,'lalalala'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'aaa' is not defined
>>> mylist.extend(['123123','lalalala'])
>>> mylist
[1, 2, 0, 'abc', 4, 'haha', 'lulu', '123123', 'lalalala']
>>> mylist.extend([111111,222])
>>> mylist
[1, 2, 0, 'abc', 4, 'haha', 'lulu', '123123', 'lalalala', 111111, 222]
min/max函数:
- import numpy as np
- a = np.array([[1,5,3],[4,2,6]])
- print(a.min())
- print(a.min(0))
- print(a.min(1))
结果:
1
[1 2 3]
[1 2]