Numpy形函数

c3frrgcw  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(73)
A = np.array([
            [-1, 3],
            [3, 2]
        ], dtype=np.dtype(float))
    
    b = np.array([7, 1], dtype=np.dtype(float))
    

    print(f"Shape of A: {A.shape}")
    print(f"Shape of b: {b.shape}")

字符串
给出以下输出:

Shape of A: (2, 2)
Shape of b: (2,)


我期望B的形状是(1,2),也就是一行两列,为什么是(2,)?

qmb5sa22

qmb5sa221#

你的假设是不正确的,b只有一维,而不是二维。

b.ndim
# 1

字符串
要有一个2D数组,你需要一组额外的方括号:

b = np.array([[7, 1]], dtype=np.dtype(float))

b.shape
# (1, 2)

b.ndim
# 2


类似地,对于3D阵列:

b = np.array([[[7, 1]]], dtype=np.dtype(float))

b.shape
# (1, 1, 2)

b.ndim
# 3


请注意,您可以使用以下命令将原始b转换为2D数组:

b = np.array([7, 1], dtype=np.dtype(float))

b.shape = (1, 2)

b
# array([[7., 1.]])


或者:

b = np.array([7, 1], dtype=np.dtype(float))[None]

b.shape
# (1, 2)

b
# array([[7., 1.]])

zphenhs4

zphenhs42#

你可以尝试使用reshape()

import numpy as np

b = np.array([7, 1],dtype=np.float64)
b = b.reshape(1, -1)  
print(f"Shape of b: {b.shape}")  # Output: (1, 2)

字符串
或者你可以尝试使用newaxis()

import numpy as np

b = np.array([7, 1], dtype=np.float64)
b = b[np.newaxis, :]  # Add a new axis to create a row vector
print(f"Shape of b: {b.shape}")  # Output: (1, 2)

相关问题