【Python第三方包】Numpy

做个笔记

Numpy遇到的坑

reshape和T的区别

reshape和T的结果是不一样的

【Python第三方包】Numpy_第1张图片

个人猜测:我一直觉得在np.array的数据结构里,数字候是以一维线性存储的形式存储的,然后对象内部再维护了一个shape,然后用的时候根据shape去截断这个数字序列,得到结果。
所以导致了reshape和T的结果不同

concatenate

首先要知道二维的np.array的维度是如何表示的
【Python第三方包】Numpy_第2张图片

import numpy as np

arr1 = np.array([[0, 1, 2],
                 [3, 4, 5]])
arr2 = np.array([[6, 7, 8],
                 [9, 10, 11]])
np.concatenate((arr1, arr2), axis=0)

# array([[ 0,  1,  2],
#        [ 3,  4,  5],
#        [ 6,  7,  8],
#        [ 9, 10, 11]])


arr1 = np.array([[0, 1, 2],
                 [3, 4, 5]])
arr2 = np.array([[6, 7, 8],
                 [9, 10, 11]])
np.concatenate((arr1, arr2), axis=1)

# array([[ 0,  1,  2,  6,  7,  8],
#        [ 3,  4,  5,  9, 10, 11]]

import numpy as np

arr1 = np.array([0, 1, 2])
arr2 = np.array([6, 7, 8])
np.concatenate((arr1, arr2), axis=0)

# array([0, 1, 2, 6, 7, 8])

import numpy as np

arr1 = np.array([0, 1, 2])
arr2 = np.array([6, 7, 8])
np.concatenate((arr1, arr2), axis=1)

# AxisError: axis 1 is out of bounds for array of dimension 1
# 因为此时只有一个维度

你可能感兴趣的:(Python)