1.符号^ 为异或运算
2.print()输出不同类型相连接,用占位符:
a = "hello"
  b = 1
  print("{},this is {} ".format(a,b)
3.数组开根号,将每个位置的元素都开根号
arr ** 0.5
4.通过指定start, stop (不包括stop),interval来产生一个1维的ndarray
  • 使用for语句生成list
    [f(k)执行语句 for k in range(0, 6, 2)]
  • np矩阵中,行为axis = 1;列为axis = 0
    arr = np.array([[1,2,3], [4,5,6], [7,8,9]])

arr.mean(axis = 1) print(“arr.mean(axis = 1): {}”.format(arr.mean(axis
= 1))) arr.sum(axis=0) print(“arr.sum(axis=0):{}”.format(arr.sum(axis=0)))

5. 找出最小元素的索引

arr.argmin(), arr.argmin(axis=0), arr.argmin(axis=1)

6.画图小demo
# ReLU和Sigmoid激活函数示意图
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
#设置图片大小
plt.figure(figsize=(8, 3))

# x是1维数组,数组大小是从-10. 到10.的实数,每隔0.1取一个点
x = np.arange(-10, 10, 0.1)
# 计算 Sigmoid函数
s = 1.0 / (1 + np.exp(- x))

# 计算ReLU函数
y = np.clip(x, a_min = 0., a_max = None)

#########################################################
# 以下部分为画图程序
# 设置两个子图窗口,将Sigmoid的函数图像画在左边
f = plt.subplot(121)
# 画出函数曲线
plt.plot(x, s, color='r')
# 添加文字说明
plt.text(-5., 0.9, r'$y=\sigma(x)$', fontsize=13)
# 设置坐标轴格式
currentAxis=plt.gca()
currentAxis.xaxis.set_label_text('x', fontsize=15)
currentAxis.yaxis.set_label_text('y', fontsize=15)

# 将ReLU的函数图像画在右边
f = plt.subplot(122)
# 画出函数曲线
plt.plot(x, y, color='g')
# 添加文字说明
plt.text(-3.0, 9, r'$y=ReLU(x)$', fontsize=13)
# 设置坐标轴格式
currentAxis=plt.gca()
currentAxis.xaxis.set_label_text('x', fontsize=15)
currentAxis.yaxis.set_label_text('y', fontsize=15)
plt.show()
6. 地板除法 //运算符
print(7//2)
#3
7.list[::k]

if k > 0,数组从头往尾取;
if k < 0,数组从尾往头取

a = [1,2,3,4,5,6,7,8,9]
b = a[::2]
# [1, 3, 5, 7, 9]
b = a[::-2]
# [9, 7, 5, 3, 1]
8.统计随机生成矩阵中有多少个元素大于0

假设使用np.random.randn生成了随机数构成的矩阵:

p = np.random.randn(10, 10)

请写一段程序统计其中有多少个元素大于0?
提示:可以试下使用 q = (p > 0),观察q是什么的数据类型和元素的取值。
提交方式:提交计算的代码,能够直接运行输出统计出来的结果。

p = np.random.rand(10,10)
q = (p>0)  #返回boolean矩阵
print np.sum(q == False)
9.python–x.shape中(4,)与(4,1)的区别
>>>import numpy as np
>>>a=np.array([0,1,2,3])
>>>b=np.array([[0],[1],[2],[3]])
>>>c=np.array([[0,1,2,3]])
>>>a.shape
(4,)
>>>b.shape
(4, 1)
>>>c.shape
(1, 4)

分析:
a.shape说明数组a的维数是1,其中有4个元素
b.shape说明数组b的维数是2,每行1个元素,有4行
c.shape说明数组c的维数是2,每行4个元素,有1行

10.读取图片后的Index

获得图像数据,并转为float32类型的数组

# 获得图像数据,并转为float32类型的数组
    img_data = np.array([x[0] for x in data]).astype('float32')
    # 获得图像标签数据,并转为float32类型的数组
    label_data = np.array([x[1] for x in data]).astype('float32')
11.numpy.repeat

w = np.repeat(w, 3, axis=1)

axis=0,沿着y轴复制,实际上增加了行数
axis=1,沿着x轴复制,实际上增加列数

12.np.transpose

图片读入成ndarry时,形状是[H, W, 3],
将通道这一维度调整到最前面
x = np.transpose(x, (2,0,1))

np.transpose(x)是行列转置;
np.transpose(x, (2,0,1))是将原本的(0,1,2)转换为顺序为(2,0,1)
13.PIL-convert()函数

PIL的九种不同模式:1,L,P,RGB,RGBA,CMYK,YCbCr,I,F1、模式”1”
为二值图像,非黑即白。但是它每个像素用8个bit表示,0表示黑,255表示白。下面我们将lena图像转换为“1”图像。
from PIL importImage
img = Image.open(“E:\image\myimg.jpg”)
img_1=img.convert(“1”)
2、模式“L”
为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。在PIL中,从模式“RGB”转换为“L”模式是按照下面的公式转换的:
L = R * 299/1000 + G * 587/1000+ B * 114/1000

14.plt.figure与plt.subplot的区别
plt.figure(figsize=(6,8))
 表示figure 的大小为宽、长(单位为inch)
 plt.subplot(121)
 表示整个figure分成1行2列,共2个子图,这里子图在第一行第一列15.random的 参数
x = np.random.randn(*[3,1,28,28])
 等价于
 x = np.random.randn(3,1,28,28)是否可以认为: 参数[1,5]等价于(1,5)?
 x = fluid.layers.reshape(x, [x.shape[0], -1])16.坐标参数用列表
draw_anchor_box(center, length, scales, ratios, img_height, img_width):
 draw_anchor_box([300., 500.], 100., [2.0], [0.5, 1.0, 2.0], img_height, img_width)17.计算box的面积时,height跟width要+1
计算box1的面积
 s1 = (y1max - y1min + 1.) * (x1max - x1min + 1.)

18.TABLE表格的读取[iloc()与loc()]的区别

  • iloc():以index为寻址号
train_data.iloc[0:4,[0,1,2,3,-3,-2,-1]]
  • loc():以key为寻址号