python3 与python2 区别

  • print
    python3:print(‘%f’%name)有括号
    python2:print ‘%f’%name无括号
  • xrange
    python3中,将range和xrange合并为range
  • size写作(100,),是一个1*100的array,而不是100*1
  • transpose转置
    Xte=Xte.reshape(10000,3,32,32).transpose(0,2,3,1)
    transpose是放的顺序 10000(0)放第一位,3(1)放到第四位,32(2)放第二位,32(3)放到第三位

  • 创建array
    a = np.array([[1,1],[2,2]])([[],[],[]])

  • reshape
    通过reshape.(-1, 1)转化为多行一列的形式
    x_train(x_train.shape[0], -1) 将多维矩阵 比如5000*32*32*3变成5000*3072

  • flatten()
    y_val_train = y_val_train.reshape(1, -1)这种方式不行,虽然转化了一行的形式,但最终该变量仍为矩阵形式,而不是行向量形式,flatten操作可以完美替代上面的[:, 0]操作
    y_val_train = y_val_train.flatten()

  • hstack
    增加一列
    X_train = np.hstack([X_train, np.ones((X_train.shape[0], 1))])#(49000, 3073)

  • _
    作为一个名称:这与上面一点稍微有些联系,此时“_”
    作为临时性的名称使用。这样,当其他人阅读你的代码时将会知道,你分配了一个特定的名称,但是并不会在后面再次用到该名称。例如,下面的例子中,你可能对循环计数中的实际值并不感兴趣,此时就可以使用“_”。

n = 42
for _ in range(n):
do_something()

  • 矩阵用法
    scores_correct = scores[np.arange(num_train), y_dev]
    其中,title
    title
    输出500行,每行取的是1*10中的第y[i]个,比如第二行y[1]=5,就是取scores的第二行第5列的值。

  • axis
    row_sum = np.sum(margins, axis=1)
    axis=0 行 累加每一行,最后输出C列;
    axis=1 列 累加每一列,最后输出N行;

  • a, b = X.shape
    X.shape为(500, 3073),分别赋给a和b,所以和a和b都是int型,size为1,值分别为500和3073.

猜你喜欢

转载自blog.csdn.net/eqiang8848/article/details/82255472