文章目录
enumerate() 函数
描述:
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
语法:
enumerate(sequence, [start=0])
sequence:需要组合为索引序列的数据对象
start:起始索引序号
例子
name = ['a', 'b', 'c', 'd']
new_name = list(enumerate(name))
print(new_name)
打印结果:
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
在for循环中使用enumerate
names = ['a', 'b', 'c', 'd']
for i, name in enumerate(names, start=10):
print(i, name)
输出
10 a
11 b
12 c
13 d
===============================================================
zip()函数
描述:
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表
语法:
zip([iterable, ...])
例子:
a = 'abcde'
b = 'edcba'
c = list(zip(a, b)) #在 Python 3中zip() 返回的是一个对象。手动 list() 转换成列表。
print(c)
print('*'*50)
print(list(zip(*c)))
打印结果:
[('a', 'e'), ('b', 'd'), ('c', 'c'), ('d', 'b'), ('e', 'a')]
**************************************************
[('a', 'b', 'c', 'd', 'e'), ('e', 'd', 'c', 'b', 'a')]
===============================================================
join()函数
描述
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法
str.join(sequence)
例子
seqs = (1, 2, 3, 4)
print("/".join(str(seq) for seq in seqs))
打印输出:
1/2/3/4
===============================================================
OneHotEncoder()、LabelEncoder()和LabelBinarizer()
代码:
from sklearn.preprocessing import LabelBinarizer, LabelEncoder, OneHotEncoder
import numpy as np
x = [['a'], ['b'], ['c'], ['d'], ['e'], ['f']]
print('*'*20)
print(OneHotEncoder().fit_transform(x).toarray())
print('*'*20)
print(LabelEncoder().fit_transform(x))
print('*'*20)
print(LabelBinarizer().fit_transform(np.asarray(x)))
结果:
********************
[[1. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0.]
[0. 0. 0. 1. 0. 0.]
[0. 0. 0. 0. 1. 0.]
[0. 0. 0. 0. 0. 1.]]
********************
[0 1 2 3 4 5]
********************
[[1 0 0 0 0 0]
[0 1 0 0 0 0]
[0 0 1 0 0 0]
[0 0 0 1 0 0]
[0 0 0 0 1 0]
[0 0 0 0 0 1]]
===============================================================
argmax()和argmin()
找最大最小值的索引
argmax(x):将x平铺成一排,求最大值的索引
argmax(x, axis=0):每一列的最大值的索引
argmax(x, axis=1):每一行的最大值的索引
import numpy as np
x=[[1,2,34],
[4,5,6]]
print(np.argmax(x, axis = 0))
print(np.argmax(x, axis = 1))
输出:
[1 1 0]
[2 2]
===============================================================
@staticmethod
静态方法,应用场景:
如果在方法中不需要访问任何实例方法和属性,纯粹地通过传入参数并返回数据的功能性方法,如:
class ShallowNet:
@staticmethod
def build(width, height, depth, classes):
model = Sequential()
inputShape = (height, width, depth)
if K.image_data_format() == "channels_first":
inputShape = (depth, height, width)
model.add(Conv2D(32, (3, 3), padding='same', input_shape=inputShape))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(classes))
model.add(Activation('softmax'))
return model
调用时直接:类.方法()即可
model = ShallowNet.build(width=32, height=32, depth=3, classes=3)
===============================================================
numpy
np.dtype
import numpy as np
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student)
print(a)
int8, int16, int32, int64 四种数据类型可以使用字符串 ‘i1’, ‘i2’,‘i4’,‘i8’ 代替
输出结果为:
[('abc', 21, 50.0), ('xyz', 18, 75.0)]
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
np.c_[]和np.r_[]
np.r_[] 是矩阵往下加,行(Raw)数增加,要求两个矩阵列数相同,如:
a:
[[1. 1. 1.]
[1. 1. 1.]]
b:
[[1. 1. 1.]]
np.r_[a, b]:
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
np.c_[] 是矩阵往右加,列(Column)数增加,要求两个矩阵行数相同,如:
a:
[[1. 1. 1.]
[1. 1. 1.]]
b:
[1. 1.]
np.c_[a, b]:
[[1. 1. 1. 1.]
[1. 1. 1. 1.]]
注意:在python中[1 1 1]和[[1 1 1]]的不同,[1 1 1]是3行1列,[[1 1 1]]是1行3列
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
numpy创建数组
-
numpy.empty
创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:
numpy.empty(shape, dtype= int, order = 'C')
-
numpy.zeros
创建指定大小的数组,数组元素以 0 来填充:
numpy.zeros(shape, dtype = float, order = 'C')
-
numpy.ones
创建指定形状的数组,数组元素以 1 来填充:
numpy.ones(shape, dtype = None, order = 'C')
参数:
shape:数组形状
dtype:数据类型,可选
order:‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组 -
numpy.asarray
将已有数组转换成numpy数组:
numpy.asarray(a, dtype = None, order = None)
参数:
a:任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组
dtype:数据类型,可选
order:可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。 -
numpy.arange
从数值范围内创建数组
numpy.arange(start, stop, step, dtype)
-
numpy.linspace
numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数:
start:序列的起始值
stop:序列的终止值,如果endpoint为true,该值包含于数列中
num:要生成的等步长的样本数量,默认为50
endpoint:该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。
retstep:如果为 True 时,生成的数组中会显示间距,反之不显示。
dtype:ndarray 的数据类型 -
numpy.logspace
numpy.logspace 函数用于创建一个于等比数列。
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
参数:
base:对数 log 的底数。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
np.floor 、np.ceil和np.around
np.floor返回不大于输入参数的最大整数(向下取整)
np.ceil返回大于输入参数的最小整数(向上取整)
np.around返回四舍五入的值
np.around(a, decimals=0, out=None)
参数:
a:输入数据
decimals:要舍入的小数位数。 默认值为0。正值代表小数点右侧,负值代表小数点左侧
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
np.expand_dims(a, axis)
扩展数据的维数:
import numpy as np
x = np.ones((2, 2))
print(x)
print('x\'s shape:', x.shape)
y = np.expand_dims(x, axis=0)
print(y)
print('y\'s shape:', y.shape)
z = np.expand_dims(x, axis=1)
print(z)
print('z\'s shape:', z.shape)
w = np.expand_dims(x, axis=2)
print(w)
print('w\'s shape:', w.shape)
输出结果
[[1. 1.]
[1. 1.]]
x's shape: (2, 2)
[[[1. 1.]
[1. 1.]]]
y's shape: (1, 2, 2)
[[[1. 1.]]
[[1. 1.]]]
z's shape: (2, 1, 2)
[[[1.]
[1.]]
[[1.]
[1.]]]
w's shape: (2, 2, 1)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
np.unique()
去除列表中的重复数据,并从小到大排序:
import numpy as np
a = np.array([5, 55, 5, 4, 3,])
print(np.unique(a))
输出结果:
[ 3 4 5 55]
===============================================================