python学习过程中的细小知识点

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创建数组

  1. numpy.empty
    创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:
    numpy.empty(shape, dtype= int, order = 'C')

  2. numpy.zeros
    创建指定大小的数组,数组元素以 0 来填充:
    numpy.zeros(shape, dtype = float, order = 'C')

  3. numpy.ones
    创建指定形状的数组,数组元素以 1 来填充:
    numpy.ones(shape, dtype = None, order = 'C')
    参数:
    shape:数组形状
    dtype:数据类型,可选
    order:‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组

  4. numpy.asarray
    将已有数组转换成numpy数组:
    numpy.asarray(a, dtype = None, order = None)
    参数
    a:任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组
    dtype:数据类型,可选
    order:可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

  5. numpy.arange
    从数值范围内创建数组
    numpy.arange(start, stop, step, dtype)

  6. 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 的数据类型

  7. 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]

===============================================================

super()

python super() - 漩涡鸣人- 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值