快速获得一个数组的反序(numpy数组也支持)
如[1,2,7,6,3],我们想要获得[3,6,7,2,1]
arra = [1, 2, 7, 6, 3]
print(arra[::-1])
如果是一个二维数组arra,那么它的arra[::-1]的结果,即是将原数组的第0行和第n-1行交换,第1行和第n-2行交换, … \dots …
字符串转换为十六进制
在我们使用str.encode()函数时,它是以指定的编码格式编码字符串,默认编码为 ‘utf-8’。将字符串由string类型变成bytes类型。
s3 = 'hello'.encode('utf-8')
print(type(s1))
print(s1)
# <class 'bytes'>
# b'hello'
我们想要获得这个字符串str的十六进制表示,我们可以这样做
import binascii
s1 = 'hello'.encode('gbk')
s2 = 'hello'.encode('utf-16')
s3 = 'hello'.encode('utf-8')
print(type(binascii.hexlify(s1)))
print(binascii.hexlify(s2))
print(binascii.hexlify(s3))
print(str(binascii.hexlify(s3), 'ascii'))
# b'68656c6c6f'
# b'fffe680065006c006c006f00'
# b'68656c6c6f'
# 68656c6c6f
注意代码中str的使用;
关于numpy.ndarray
numpy是支持,一个数与一个ndarray、matrix的运算的,已经试了简单的加法运算
import numpy as np
a = np.zeros((1,4))
print(1 - a)
print(a)
print(1-np.matrix(a))
# [[1. 1. 1. 1.]]
# [[0. 0. 0. 0.]]
# [[1. 1. 1. 1.]]
numpy.insert
numpy.insert(arr, obj, values, axis=None)
,arra
即是一个arra_like类型的对象,就是你所要操作的对象,obj
则是定义了插入之前的下标、索引,可以是int、切片或者int序列,values
是arra_like类型的,是你需要插入的值,它必须使得arr[...,obj,...] = values
是合法的,另外axis如果不指定,就会默认把原来的arr_like对象变成一个扁平也即一维的数组,即使原来是多维的;
a = np.array([[1, 1], [2, 2], [3, 3]])
print(np.insert(a, 1, 5))
# [1, 5, 1, ..., 2, 3, 3]
print(np.insert(a, 1, 5, axis = 1))
# [[1, 5, 1],
# [2, 5, 2],
# [3, 5, 3]]
print(np.insert(a, [1], [[1],[2],[3]], axis=1))
# [[1, 1, 1],
# [2, 2, 2],
# [3, 3, 3]]
pandas
- 获取某个元素,
df.loc['行名', '列名'], df.loc[index1, index2]
- 切片,
df.loc[['行名', ...], ['列名', ...]], df.iloc[:,:], df.iloc[[index1,...],[index2,...]]
,读取一列,df['列名']
,df[index1:inddex2]['列名']
- 访问某一列也可以
df.列名
来访问,返回series
df.describe()
的结果如下
访问pands列名、行名:df.columns.values, df.index.values
women = train_data.loc[train_data.Sex == 'female']["Survived"]