把数组中的每个数都向上取整
时间: 2024-04-16 14:26:33 浏览: 11
要将数组中的每个数向上取整,可以使用NumPy库中的`ceil`函数。`ceil`函数将每个元素向上取整并返回一个新的数组。以下是一个示例代码:
```python
import numpy as np
arr = np.array([1.2, 2.7, 3.5, 4.9])
arr_ceil = np.ceil(arr)
print(arr_ceil)
```
输出结果为:
```
[2. 3. 4. 5.]
```
在这个示例中,原始数组`arr`中的每个元素都被向上取整,得到新的数组`arr_ceil`。你可以根据自己的需求调用`np.ceil()`函数来处理你的数组。
相关问题
matlab 对于1*n的元胞数组,每个元胞都是普通数组,遍历元胞数组中元胞,如果这个cell的长度大于2,则将这个cell拆分成两个cell,新生成cell是原来数组中最小的四分之一(向上取整)。
可以使用如下代码实现:
```matlab
% 假设原始的元胞数组为cellArr
newCellArr = cell(1, numel(cellArr)*2); % 新的元胞数组,预分配空间
idx = 1; % 新元胞数组的当前索引
for i = 1:numel(cellArr)
if length(cellArr{i}) > 2
newLength = ceil(length(cellArr{i})/4); % 新的长度
newCell1 = cellArr{i}(1:newLength); % 新的元胞1
newCell2 = cellArr{i}(newLength+1:end); % 新的元胞2
newCellArr{idx} = newCell1; % 存储新元胞1
newCellArr{idx+1} = newCell2; % 存储新元胞2
idx = idx + 2; % 更新索引
else
newCellArr{idx} = cellArr{i}; % 存储原元胞
idx = idx + 1; % 更新索引
end
end
newCellArr = newCellArr(1:idx-1); % 去除预分配空间多余部分
```
其中,`cellArr`为原始的元胞数组,`newCellArr`为拆分后的新元胞数组。遍历原始元胞数组,若某个元胞的长度大于2,则根据要求生成两个新的元胞,并存储在新元胞数组中;否则直接将原元胞存储在新元胞数组中。最后去除新元胞数组中预分配空间多余的部分即可。
python numpy 向上取整
可以使用numpy.ceil()函数来实现向上取整。该函数将输入数组中的每个元素向上取整为最接近的整数。
例如,将数组[1.2, 2.5, 3.8]向上取整,可以使用以下代码:
```python
import numpy as np
arr = np.array([1.2, 2.5, 3.8])
arr_ceil = np.ceil(arr)
print(arr_ceil) # 输出 [ 2. 3. 4.]
```
注意,向上取整后的结果是浮点数类型。如果需要将其转换为整数类型,可以使用astype()函数进行类型转换,如下所示:
```python
arr_ceil_int = arr_ceil.astype(int)
print(arr_ceil_int) # 输出 [2 3 4]
```